我已强制在我的 gradle 中下载此版本的 jsr305,如下所示:
resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
我看到当我尝试编译 gradle 时正在解析版本:
尽管如此,我看到在 gradle 同步期间,旧版本(2.0.1 和 1.3.9)仍在下载:
我收到如下编译错误:
com.android.build.api.transform.TransformException:
Error while generating the main dex list.
com.android.tools.r8.errors.CompilationError: Program type already present: javax.annotation.CheckForNull
Program type already present: javax.annotation.CheckForNull
我做了一个模块级别的搜索,发现
CheckForNull.java
存在于多个地方jsr305/2.0.1
jsr305/3.0.1
jsr305/1.3.9
我试过删除
./gradle
文件夹并重新同步项目。我看到gradle仍然下载之前的jsr305版本。这些是我在 gradle 中的依赖项:
implementation "com.facebook.react:react-native:${versions.reactNative}"
implementation ("com.google.code.findbugs:annotations:3.0.1") {
exclude group: 'net.jcip', module: 'jcip-annotations'
}
我的问题:
创建了一个测试项目,该项目显示了即使在强制解决之后也下载旧 lib 版本的行为:
https://github.com/vineyugave/scratchpad
您还可以在此处查看 gradle 扫描:
https://scans.gradle.com/s/tzrobr2zuar3c/dependencies?dependencies=jsr&expandAll
最佳答案
模块 :firstlib
引用资料 implementation "com.google.code.findbugs:jsr305:2.0.0"
,
应该是 implementation "com.google.code.findbugs:jsr305:3.0.2"
...但另一个 build.gradle
与问题不匹配,因为它缺少 react-native
.dependencies
模块 :app
应该看起来相似(只有更改):
dependencies {
implementation "com.android.support:appcompat-v7:28.0.0"
implementation "com.android.support:recyclerview-v7:28.0.0"
implementation "com.android.support:support-v4:28.0.0"
implementation ("com.facebook.react:react-native:0.20.1") {
exclude group: "com.android.support", module: "recyclerview-v7"
exclude group: "com.android.support", module: "support-v4"
}
//noinspection GradleDependency
implementation "com.google.guava:guava:24.1-android"
}
configurations.all {
resolutionStrategy.force "com.google.code.findbugs:jsr305:3.0.2"
resolutionStrategy.force "com.google.guava:guava:24.1-android"
}
./gradlew app:dependencies
列出它们。然后 exclude
他们相应地。 :app:transformClassesWithMultidexlistForDebug
失败,因为 react-native
引起的支持库版本冲突(已在上面的示例中修复)。 jniLibs
来自 armeabi
进入 armeabi-v7a
,它不会再提示缺少剥离工具了。但是,它们不会被加载到 arm64-v8a
了。 关于java - Android Gradle ResolutionStrategy force 仍然会下载以前版本的 lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52744845/