我想運行一個單元測試,其中模擬兒童類SQLiteOpenHelper
但我得到以下錯誤。Android的jUnit測試java.lang.NoClassDefFoundError:android /數據庫/ sqlite的/ SQLiteOpenHelper
java.lang.NoClassDefFoundError: android/database/sqlite/SQLiteOpenHelper
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
...
at org.dfhu.vpodplayer.util.JsonExporterTest.export(JsonExporterTest.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...
我的搖籃文件看起來像
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion '25.0.1'
defaultConfig {
applicationId "org.dfhu.vpodplayer"
minSdkVersion 18
targetSdkVersion 24
versionCode 1
versionName "1.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
targetCompatibility 1.7
sourceCompatibility 1.7
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.android.support:recyclerview-v7:24.2.1'
testCompile 'junit:junit:4.12'
testCompile 'org.powermock:powermock-api-mockito:1.6.5'
testCompile 'org.powermock:powermock-module-junit4:1.6.5'
}
該做的工作之前,我重新安裝,Android的工作室和更新,以builtToolsVersion '25 .0.1' 。
我正在尋找一種方法在我的測試運行器中獲取我的android依賴關係。
它是否適用'./gradlew test'? – tynn
@tynn是的,似乎工作,它下載了一堆的依賴關係,現在它也可以在Android Studio中工作。我認爲在Android Studio邊欄中單擊「Gradle> [MyProjectsName]> Verfication> test」將與CLI相同,但我想有一些區別。如果你發佈這個答案,我會+1和檢查正確的。 – Victory
謝謝@tynn,爲我工作。現在也可以使用AS –