目前,我的android項目正在使用gradle插件1.2.3版本。我能夠使用gradle命令「./gradlew clean connectedProductionAndroidTest」成功運行單元測試(android測試),其中「Production」是一種風格。從1.2.3更新Android gradle插件 - > 1.5.0 =單元測試中斷
但是,當我將我的gradle插件更新到1.5.0時,出現以下錯誤。
17:35:16 Tests on Android SDK built for x86 - 4.2 failed: Instrumentation run failed due to 'java.lang.IllegalAccessError'
17:35:16
17:35:16 com.android.builder.testing.ConnectedDevice > No tests found.[Android SDK built for x86 - 4.2] [31mFAILED [0m
17:35:16 No tests found. This usually means that your test classes are not in the form that your test runner expects (e.g. don't inherit from TestCase or lack @Test annotations).
當我更新了gradle這個插件,我沒有做的目錄結構,也沒有任何改變我的任何測試。
這是我用來更新gradle插件的代碼。這是我的根 build.gradle文件。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
我只是想知道如果兩個版本之間有什麼變化,可能會使我的測試失敗?
請注意,我將測試放在文檔中指定的「$ ROOT/app/src/androidTest/java/...」中。另外,在gradle 1.2.3中,我不得不使用命令「./gradlew clean connectedProductionAndroidTest」,但在插件版本1.5.0中,它看起來事情已經改變。我現在必須這樣做:「./gradlew clean connectedAndroidTestProduction」。請注意「生產」和「AndroidTest」的交換。
任何幫助將不勝感激。
編輯:
這裏是我的應用程序的文件的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
lintOptions {
disable 'OldTargetApi'
abortOnError false
}
defaultConfig {
applicationId "com.myapp"
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.getVersionCode()
versionName rootProject.getVersionName()
testApplicationId "com.myapp.test"
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles 'proguard.cfg'
signingConfig signingConfigs.release
multiDexEnabled false
}
debug {
debuggable true
testCoverageEnabled true
signingConfig signingConfigs.release
multiDexEnabled true
}
}
productFlavors {
production {
}
}
dexOptions {
javaMaxHeapSize "4g"
}
}
感謝您的幫助! :) – Jon