我正在使用具有以下两个依赖项AndroidX
的第三方库:
implementation 'androidx.navigation:navigation-fragment:2.1.0-alpha02'
implementation 'androidx.navigation:navigation-ui:2.1.0-alpha02'
在编译仍然使用android.support.*
的主机应用程序时,我得到了以下错误:
AAPT:错误:属性"com.x.y.android.debug:defaultNavHost" 未找到。
AAPT:错误:找不到属性"com.x.y.android.debug:startDestination"。
为了修复它,我在主机应用程序中添加了相应的AndroidX
库,并遇到了以下错误:
任务:App:transformDexArchiveWithExternalLibsDexMergerForChaseDebug FAILED D8:程序类型已存在:com.google.android.material.internal.package-info
请注意:库已使用此链接反向喷射
./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar
我已经尝试gradle.properties
文件中添加以下行:
android.useAndroidX = true
android.enableJetifier=false
已经尝试从包装信息中排除:
packagingOptions {
exclude 'com.google.android.material.internal.package-info'
}
上述两种解决方案都不起作用。有什么建议吗?
我可以看到两种解决方案:
1( 将您的应用程序迁移到 AndroidX。
2( 降级库版本
大多数库都比AndroidX旧。因此,在过去,他们使用的是支持库。他们最近迁移。因此,您可以将 gradle 设置为使用旧版本(在迁移到 AndroidX 之前(。
您可以通过检查他们更新build.gradle
的版本来找到此类信息。
例如,Lottie Library 在版本2.6.0
中迁移到 Android X,如下所示
因此,对于 Lottie,您可以使用版本v2.5.6
这是v2.6.0
之前的最后一个稳定版本