Android Studio E / dalvikvm:找不到类' .DatabaseHelper',从方法.DatabaseManager引用

时间:2015-09-21 14:13:31

标签: android android-studio ormlite

您好我在运行时使用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时,一切正常 这是我更新的内容:

  • gradle:classpath 'com.android.tools.build:gradle:1.1.0'&gt; 1.3.0
  • sdk版本:compileSdkVersion 19&gt; 23
  • appcompat:com.android.support:appcompat-v7:19.0.1&gt; 23
  • 播放服务

我的databaseHelper Class与其他Classes在同一个包中,工作正常!

感谢您的帮助

3 个答案:

答案 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