您好我在运行时使用Android Studio时遇到此错误,但仅在SDK版本<= 19的设备上出现此错误。一切正常但我在我的databaseHelper类上收到此错误。
java.lang.NoClassDefFoundError:
这是我的app build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.1'
useLibrary 'org.apache.http.legacy'
defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled true
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.gms:play-services:7.8.0'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.github.johnpersano:supertoasts:1.3.4@aar'
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
compile 'com.navercorp.pulltorefresh:library:3.2.0@aar'
compile 'com.parse.bolts:bolts-android:1.2.1'
compile 'com.j256.ormlite:ormlite-android:4.48'
compile 'com.j256.ormlite:ormlite-core:4.48'
}
我的databaseHelper类扩展OrmLiteSqliteOpenHelper
当我的compileSdkVersion为19时,一切正常
这是我更新的内容:
classpath 'com.android.tools.build:gradle:1.1.0'
&gt; 1.3.0 compileSdkVersion 19
&gt; 23 com.android.support:appcompat-v7:19.0.1
&gt; 23 我的databaseHelper Class与其他Classes在同一个包中,工作正常!
感谢您的帮助
答案 0 :(得分:11)
在build.gradle中有multiDexEnabled true
。确保您的应用程序类正在扩展MultiDexApplication
而不是Application
类。
或者,正如文档中所建议的那样,您可以将以下方法添加到应用程序类中。
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
答案 1 :(得分:1)
我发现了这个问题。在lollypop之前不正确地支持MultiDex。一旦我删除了额外的库并删除gradle上的multidex设置,一切都开始正常工作。
删除。
multiDexEnabled true
此致
答案 2 :(得分:0)
我有一段时间有同样的问题,试图关闭ProGuard
minifyEnabled false