NoSuchMethodError:用于Android的jUnit测试中的com.google.common.util.concurrent.MoreExecutors.directExecutor()

时间:2016-04-21 09:06:07

标签: android unit-testing gradle junit guava

我尝试编写测试,我想使用guava 19.0进行项目,但Android Studio内置了guava 17.0我强制它在build.gradle中

configurations.all {
            resolutionStrategy.force 'com.google.guava:guava:19.0'
        }

它有效,但如何为测试做同样的事情?因为在运行测试时它使用旧的番石榴17.0

2 个答案:

答案 0 :(得分:2)

您需要分析冲突的依赖关系。您的测试分数中至少有两个依赖于Guava的依赖项,但指定了不同的版本。

您可以使用gradle dependenciesgradle dependencyInsight查找哪些依赖项依赖于Guava的特定版本。一旦找到罪魁祸首(根据您不想要的版本),您可以将其排除在外。

有关详细信息,请参阅https://docs.gradle.org/current/userguide/dependency_management.html

答案 1 :(得分:1)

它帮助我

configurations {
    compile.exclude module: 'guava-jdk5'
}