NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor() in jUnit tests for Android
NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor() in jUnit tests for Android
我尝试编写测试,我想将 guava 19.0 用于项目,但是 Android Studio 构建了 guava 17.0 我在 build.gradle
中强制使用它
configurations.all {
resolutionStrategy.force 'com.google.guava:guava:19.0'
}
它确实有效,但如何对测试做同样的事情?因为当 运行 测试时它使用旧的番石榴 17.0
您需要分析您的依赖项是否存在冲突。您的测试分数中至少有两个依赖项依赖于 Guava 但指定了不同的版本。
您可以使用 gradle dependencies
和 gradle dependencyInsight
来查找您的哪些依赖项依赖于特定版本的 Guava。一旦找到罪魁祸首(取决于您不想要的版本),您就可以排除它们。
有关详细信息,请参阅 https://docs.gradle.org/current/userguide/dependency_management.html。
对我有帮助
configurations {
compile.exclude module: 'guava-jdk5'
}
我尝试编写测试,我想将 guava 19.0 用于项目,但是 Android Studio 构建了 guava 17.0 我在 build.gradle
中强制使用它configurations.all {
resolutionStrategy.force 'com.google.guava:guava:19.0'
}
它确实有效,但如何对测试做同样的事情?因为当 运行 测试时它使用旧的番石榴 17.0
您需要分析您的依赖项是否存在冲突。您的测试分数中至少有两个依赖项依赖于 Guava 但指定了不同的版本。
您可以使用 gradle dependencies
和 gradle dependencyInsight
来查找您的哪些依赖项依赖于特定版本的 Guava。一旦找到罪魁祸首(取决于您不想要的版本),您就可以排除它们。
有关详细信息,请参阅 https://docs.gradle.org/current/userguide/dependency_management.html。
对我有帮助
configurations {
compile.exclude module: 'guava-jdk5'
}