在主机应用程序中使用 AndroidX 依赖库,该库仍然使用 android.support.*



我正在使用具有以下两个依赖项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之前的最后一个稳定版本

最新更新