4

我試圖建立UI測試我的Android Studio中的Android應用程序。問題是我無法運行它們。我收到消息:任務'app:prepareDebugAndroidTestDependencies'的執行失敗,我找不到它的內容。當我運行我的應用程序時,它啓動完美,但是當我嘗試運行測試時,它顯示提到的消息。我在下面的build.gradle是lsited:執行失敗的任務「應用:prepareDebugAndroidTestDependencies」

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:[email protected]' 

// 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:[email protected]' 

// 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:[email protected]' 

// 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' 

} 

我運行/調試配置的測試是在下面的圖片:

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

誰能幫我找出問題出在哪裏?

回答

7

在您的應用程序添加build.gradleandroid { }如下:

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

但爲什麼會導致這樣?

當儀器測試運行時,主APK和測試APK共享相同的類路徑。如果主APK和測試APK使用相同的庫(例如Guava),但使用不同版本,則Gradle構建將失敗。如果gradle沒有捕捉到這一點,那麼在測試和正常運行期間(包括其中一個案例中的崩潰),您的應用可能會有不同的表現。

爲了使構建成功,只要確保兩者的APK使用相同的版本。如果錯誤是關於間接依賴(庫你沒有在你的build.gradle提),只需添加一個依賴於較新版本的配置(「編譯」或「androidTestCompile」)需要它。您也可以使用Gradle的解決策略機制。您可以通過運行./gradlew:app:dependencies和./gradlew:app:androidDependencies來檢查依賴關係樹。

+0

希望它可以幫助你。 – Evan

+0

謝謝你的努力。一年多以前,我遇到了這個問題,並解決了這個問題,但沒有更新答案。 – alminh

+0

你能投我的答案嗎?非常感謝。 – Evan

相關問題