在 Maven 库中将 android.support.v4.util.ArraySet 替换为 androidx.collection.ArraySet
Replace android.support.v4.util.ArraySet with androidx.collection.ArraySet in Maven library
我有一个第 3 方库依赖于:
import android.support.v4.util.ArraySet;
我想在项目的其余部分使用最新的 Android 库:
import androidx.collection.ArraySet;
但是,由于我是通过 Maven 获取库的,所以我似乎无法强制它替换 androidx 的 v4 依赖项并让它引用正确的 class。
我已经试过了:
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
?
android.enableJetifier=true
The Android plugin automatically migrates existing third-party libraries to use AndroidX by rewriting their binaries.
因此,重写 Maven 依赖项正是 Jetifier 为您所做的。确保您已将 android.enableJetifier=true
添加到 gradle.properties
文件以启用 Jetifier。
我有一个第 3 方库依赖于:
import android.support.v4.util.ArraySet;
我想在项目的其余部分使用最新的 Android 库:
import androidx.collection.ArraySet;
但是,由于我是通过 Maven 获取库的,所以我似乎无法强制它替换 androidx 的 v4 依赖项并让它引用正确的 class。
我已经试过了:
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
?
android.enableJetifier=true
The Android plugin automatically migrates existing third-party libraries to use AndroidX by rewriting their binaries.
因此,重写 Maven 依赖项正是 Jetifier 为您所做的。确保您已将 android.enableJetifier=true
添加到 gradle.properties
文件以启用 Jetifier。