猿问

将 Maven 库中的 android.support.v4.util.ArraySet 替换为

我有一个第三方库,它依赖于:


import android.support.v4.util.ArraySet;


我想在项目的其余部分使用最新的 Android 库:


import androidx.collection.ArraySet;


然而,由于我是通过 Maven 获取该库的,所以我似乎无法强制它替换 androidx 的 v4 依赖项并让它引用正确的类。


我已经尝试过:


implementation 'androidx.collection:collection:1.1.0'

implementation('some-library:v1') {

        exclude group: 'com.android.support', module: 'support-v4'

}

和:


configurations.all {

    resolutionStrategy.dependencySubstitution {

        substitute module('com.android.support:support-v4') with module('androidx.collection:collection:1.1.0')

    }

}

我什至尝试了更多的事情,包括force=true我想要的依赖项。


然而我仍然得到:


java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArraySet;

当我无法访问源代码时,如何告诉 Gradle 解析android.support.v4.util.ArraySetto的导入?androidx.collection.ArraySet


侃侃无极
浏览 91回答 1
1回答

翻过高山走不出你

根据迁移到 AndroidX 指南:android.enableJetifier=trueAndroid 插件会通过重写二进制文件自动迁移现有的第三方库以使用 AndroidX。因此,Maven 依赖项的重写正是 Jetifier 为您所做的。确保您已将其添加android.enableJetifier=true到gradle.properties文件中以启用 Jetifier。
随时随地看视频慕课网APP

相关分类

Java
我要回答