我有一个第三方库,该库取决于:
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.ArraySet的导入解析为androidx.collection.ArraySet

最佳答案

按照Migrate to AndroidX guide:

因此,重写Maven依赖项正是Jetifier为您完成的。确保已将android.enableJetifier=true添加到gradle.properties文件中以启用Jetifier。

10-06 07:02
查看更多