मैं एक यूनिट परीक्षण चलाने की कोशिश कर रहा हूं जो SQLiteOpenHelper
की बाल कक्षा का नकल करता है लेकिन मुझे निम्न त्रुटि मिल रही है।एंड्रॉइड जुनीट टेस्ट java.lang.NoClassDefFoundError: एंड्रॉइड/डेटाबेस/स्क्लाइट/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)
...
मेरे Gradle फ़ाइल लग रहा है
तरह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'
}
यह काम किया है इससे पहले कि मैं पुनर्स्थापित, एंड्रॉयड स्टूडियो और builtToolsVersion '25 .0.1 'के लिए अद्यतन।
मैं अपने परीक्षण धावक में अपनी एंड्रॉइड निर्भरता प्राप्त करने का एक तरीका ढूंढ रहा हूं।
क्या यह './gradlew test' के साथ काम करता है? – tynn
@tynn हाँ जो काम करता प्रतीत होता है, यह निर्भरता का एक गुच्छा डाउनलोड करता है, यह अब एंड्रॉइड स्टूडियो में भी काम करता है। मैंने सोचा था कि एंड्रॉइड स्टूडियो साइडबार में क्लिक करना "ग्रैडल> [माईप्रोजेक्ट्सनाम]> सत्यापन> परीक्षण" सीएलआई जैसा ही होगा, लेकिन मुझे लगता है कि कुछ अंतर है। यदि आप इसे उत्तर के रूप में पोस्ट करते हैं तो मैं +1 करूँगा और सही जांचूँगा। – Victory
धन्यवाद @tynn, मेरे लिए काम किया। अब एएस –