我有一个第三方库,该库取决于: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。