任务“app:prepareDebugAndroidTestDependencies"执行失败 [英] Execution failed for task 'app:prepareDebugAndroidTestDependencies'

查看:36
本文介绍了任务“app:prepareDebugAndroidTestDependencies"执行失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 Android Studio 中为我的 Android 应用程序构建 UI 测试.问题是我不能运行它们.我收到消息:任务 'app:prepareDebugAndroidTestDependencies' 的执行失败,我找不到它是关于什么的.当我运行我的应用程序时,它可以完美启动,但是当我尝试运行测试时,它会显示提到的消息.我的 build.gradle 如下:

 应用插件:'com.android.application'安卓 {compileSdkVersion 22构建工具版本22.0.0"默认配置{applicationId "ba.etf.pkks.eldaralmin.libraryapp"minSdk 版本 15目标SDK版本22版本代码 1版本名称1.0"}构建类型{释放 {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}存储库{MavenCentral()行家{网址https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"}}依赖{编译文件树(目录:'libs',包括:['*.jar'])编译'com.android.support:appcompat-v7:22.0.0'编译'com.android.support:support-v4:22.0.0'编译'com.readystatesoftware.sqliteasset:sqliteassethelper:+'//支持 Android 4.0.3 及更高版本(API 级别 15)编译 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'//支持 Android 2.1 及更高版本(API 级别 7),但不适用于更高的 Android 版本.//如果您只打算支持 Android 4.0.3 及更高版本,则不需要包含此内容.编译'com.embarkmobile:zxing-android-legacy:2.0.0@aar'//启动扫描和编码活动的便捷库.//它会自动从上述两个库中选择最佳扫描库,具体取决于//Android 版本和可用的内容.编译'com.embarkmobile:zxing-android-integration:2.0.0@aar'//zxing core 3.0.x 版本包含一些在Android 2.2 及更早版本上不兼容的代码.//这主要影响编码,但您应该测试您是否计划支持这些版本.//旧版本如果您需要对旧 Android 版本的支持,2.2 也可能有效.编译'com.google.zxing:core:3.0.1'编译'com.nononsenseapps:filepicker:2.1'编译 'com.astuetz:pagerslidingtabstrip:1.0.1'编译'com.google.code.gson:gson:1.7.2'androidTestCompile 'com.android.support.test:runner:0.2'androidTestCompile 'com.android.support.test:rules:0.2'androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'}

我的测试运行/调试配置如下图所示:

http://pokit.org/get/?5b2509c64e5049b1b168c939b953>

谁能帮我找出问题所在?

在你的应用程序 build.gradle 中,在 android { } 中添加以下内容:

 配置.all {resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'}

但是为什么会导致这样呢?

<块引用>

运行检测测试时,主 APK 和测试 APK 共享相同的类路径.如果主 APK 和测试 APK 使用相同的库(例如 Guava)但版本不同,则 Gradle 构建将失败.如果 gradle 没有发现这一点,您的应用在测试期间和正常运行期间的行为可能会有所不同(包括在其中一种情况下崩溃).

要使构建成功,只需确保两个 APK 使用相同的版本即可.如果错误是关于间接依赖项(您在 build.gradle 中没有提到的库),只需将新版本的依赖项添加到需要它的配置(compile"或androidTestCompile")中.您还可以使用 Gradle 的解析策略机制.您可以通过运行 ./gradlew :app:dependencies 和 ./gradlew :app:androidDependencies 来检查依赖树.

I'm trying to build UI tests for my Android application in Android Studio. The problem is that I can't run them. I get the message: Execution failed for task 'app:prepareDebugAndroidTestDependencies' which I couldn't find what it's about. When I run my application, it starts perfectly, but when i try to run tests it shows the mentioned message. My build.gradle is lsited below:

    apply plugin: 'com.android.application'
    android {
compileSdkVersion 22
buildToolsVersion "22.0.0"

defaultConfig {
    applicationId "ba.etf.pkks.eldaralmin.libraryapp"
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

repositories {
mavenCentral()

maven {
    url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:support-v4:22.0.0'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
// Supports Android 4.0.3 and later (API level 15)
compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'

// Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
// If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
compile 'com.embarkmobile:zxing-android-legacy:2.0.0@aar'

// Convenience library to launch the scanning and encoding Activities.
// It automatically picks the best scanning library from the above two, depending on the
// Android version and what is available.
compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'

// Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
// This mostly affects encoding, but you should test if you plan to support these versions.
// Older versions e.g. 2.2 may also work if you need support for older Android versions.
compile 'com.google.zxing:core:3.0.1'
compile 'com.nononsenseapps:filepicker:2.1'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.google.code.gson:gson:1.7.2'
androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'

}

My run/debug configurations for tests are in the image below:

http://pokit.org/get/?5b2509c64e5049b1b168c99b95313d5e.jpg

Can anyone help me to figure out where the problem is?

解决方案

In your apps build.gradle add the following within android { }:

  configurations.all {
    resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
}

But why would lead to such?

When instrumentation tests are run, both the main APK and test APK share the same classpath. Gradle build will fail if the main APK and the test APK use the same library (e.g. Guava) but in different versions. If gradle didn't catch that, your app could behave differently during tests and during normal run (including crashing in one of the cases).

To make the build succeed, just make sure both APKs use the same version. If the error is about an indirect dependency (a library you didn't mention in your build.gradle), just add a dependency for the newer version to the configuration ("compile" or "androidTestCompile") that needs it. You can also use Gradle's resolution strategy mechanism. You can inspect the dependency tree by running ./gradlew :app:dependencies and ./gradlew :app:androidDependencies.

这篇关于任务“app:prepareDebugAndroidTestDependencies"执行失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆