簡體   English   中英

如何知道支持庫是否已經支持 AndroidX?

[英]How to know if a support library already supports AndroidX?

我有統一的項目,使用 Mapbox,
Mapbox 包括以下支持庫:support-v4-25.1.0.aar
這個庫以 .aar 文件的形式出現,而不是 gradle implementation命令
嘗試構建項目時出現此錯誤:

無法確定任務“:launcher:lintVitalRelease”的依賴關系。
無法解析配置“:launcher:debugRuntimeClasspath”的所有項目。
無法轉換 support-v4-25.1.0-.aar (:support-v4-25.1.0:) 以匹配屬性 {artifactType=android-manifest, org.gradle.status=integration}。
> JetifyTransform 執行失敗:
C:\Users\EFGH\Documents\GitHub\AREX\Temp\gradleOut\unityLibrary\libs\support-v4-25.1.0.aar。
> 使用 Jetifier 轉換 'C:\Users\EFGH\Documents\GitHub\AREX\Temp\gradleOut\unityLibrary\libs\support-v4-25.1.0.aar' 失敗。
原因:AmbiguousStringJetifierException,消息:給定的工件包含一個帶有 package 引用“android.support.v4”的字符串文字,無法安全重寫。 使用反射的庫(例如注釋處理器)需要手動更新以添加對 androidx 的支持。(使用 --stacktrace 運行以獲取更多詳細信息。)
這是一個已知的異常,Jetifier 將無法對這個庫進行 jetify。 建議:
-如果你認為這個庫不需要被jetified(例如,如果它已經支持AndroidX,或者如果它根本不使用支持庫/AndroidX),添加android.jetifier.blacklist = {comma-separated list of您不想被 jetified 的庫的正則表達式(或簡稱名稱)添加到 gradle.properties 文件中。
- 如果你認為這個庫需要被jetified(例如,如果它使用舊的支持庫並且如果它沒有jetified會破壞你的應用程序),請聯系庫的作者更新這個庫以支持AndroidX並在支持的版本后使用釋放。
如果您需要進一步的幫助,請在https://issuetracker.google.com/issues/140747218發表評論。

我的 gradle.properties:

org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
org.gradle.parallel=true
android.enableJetifier=true
android.useAndroidX=true
android.enableR8=**MINIFY_WITH_R_EIGHT**
unityStreamingAssets=.unity3d**STREAMING_ASSETS**
**ADDITIONAL_PROPERTIES**

我想知道是否有辦法讓我知道一個特定的支持庫是否已經支持 AndroidX?(所以它不需要被 jetified)
此外,首先要說的是:為什么有些圖書館不需要jetified? 當支持庫支持 AndroidX 並且不需要被 jetified 時,這是什么意思? jetify 不是自動用相應的 AndroidX 等效庫替換支持庫的行為嗎? 一個支持圖書館怎么能從被噴氣化中獲得免費通行證呢? 這對我來說根本沒有意義..

很確定它描述了您不需要使用 jetify 的罕見可能性,例如,如果它在不使用它的 class 中完成,或者在從未使用過的 class 中完成。 除非庫設計者非常草率,否則這種情況不太可能發生。 但是,如果它僅使用您的應用程序永遠不會接觸的 class 中的支持庫,也可能沒問題。 如果在這種情況下將其列入黑名單,則不確定它是否能夠編譯。

很可能你運氣不好,直到你可以讓庫作者修復它,或者如果它是開源的,你可以分叉他們的庫並在你自己的副本中修復它。 Jetpack 已經存在好幾年了。 任何仍在使用舊支持庫的庫很可能已被廢棄多年,因此這也是需要考慮的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM