gpt4 book ai didi

Android jUnit 测试 java.lang.NoClassDefFoundError : android/database/sqlite/SQLiteOpenHelper

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:31:12 26 4
gpt4 key购买 nike

我正在尝试运行模拟 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'
}

这在我重新安装 Android Studio 并更新到 builtToolsVersion“25.0.1”之前确实有效。

我正在寻找一种在我的测试运行器中获取我的 android 依赖项的方法。

最佳答案

有时,Android Studio 无法将 Android 类正确加载到类路径中进行测试。在我们的例子中,它通常是 android.os.Parcelable。但 CI 始终运行良好。

因此运行 ./gradlew test 应该在这种情况下始终有效,并且幸运地修复了 Android Studio 的依赖项。

关于Android jUnit 测试 java.lang.NoClassDefFoundError : android/database/sqlite/SQLiteOpenHelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42844600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com