【问题标题】:Gradle: Resolved versions for app and test app differGradle:应用程序和测试应用程序的已解决版本不同
【发布时间】:2016-12-19 20:43:01
【问题描述】:

当我添加依赖时:

compile 'net.bytebuddy:byte-buddy-android:0.7.8'

在我的应用程序中,我收到此错误:

Conflict with dependency 'net.bytebuddy:byte-buddy'. Resolved versions for app (0.7.8) and test app (0.6.14) differ. See http://g.co/androidstudio/app-test-app-conflict for details.

我访问过http://g.co/androidstudio/app-test-app-conflict,上面写着:

如果主 APK 和测试 APK 使用相同,Gradle 构建将失败 库(例如 Guava),但版本不同。[...] 进行构建 成功,请确保两个 APK 使用相同的版本

但我不知道这是什么意思。

你能帮帮我吗?谢谢。

build.gradle

    ...
     buildTypes {

            all {
                //just build some config fields
            }

            demo.initWith(buildTypes.debug)
            demo {
                //just build some config fields
            }

            devel.initWith(buildTypes.debug)
            devel {
                //just build some config fields
            }

            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.gg
                //just build some config fields
            }
        }

lintOptions {
    checkReleaseBuilds false
    abortOnError false
}

    ...

【问题讨论】:

  • 显示你的 gradle 文件
  • 哪一部分? build.gradle 很大...
  • 那个指的是 byte-buddy-android 和你的构建风格?

标签: android android-studio gradle android-testing


【解决方案1】:

您可以使用以下命令强制测试中的版本:

androidTestCompile 'net.bytebuddy:byte-buddy-android:0.7.8'

【讨论】:

  • 它有效。但是现在我只能在测试类中使用它,因为它是一个测试依赖项。我能做什么?
  • @bigdestroyer 你必须使用 androidTestCompile 'net.bytebuddy:byte-buddy-android:0.7.8' 并在你的build.gradle
【解决方案2】:

您可以通过将其添加到您的 gradle 文件来强制版本而不添加无关的依赖项

configurations.all {
    resolutionStrategy {
        force 'net.bytebuddy:byte-buddy-android:0.7.8'
    }
}

【讨论】:

    猜你喜欢
    • 2018-10-11
    • 2015-05-13
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    相关资源
    最近更新 更多