2015-09-21 5 views
8

Hallo, ich bekomme diesen Fehler mit Android Studio zur Laufzeit aber nur auf Geräten mit einer SDK-Version < = 19. Alles kompiliert ok aber ich erhalte diesen Fehler in meiner DatenbankHelper-Klasse.Android Studio E/dalvikvm: Konnte die Klasse '.DatabaseHelper' nicht finden, verwiesen von Methode .DatabaseManager

java.lang.NoClassDefFoundError: 

Hier ist meine 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:[email protected]' 
    compile 'com.readystatesoftware.systembartint:systembartint:1.0.3' 
    compile 'com.navercorp.pulltorefresh:library:[email protected]' 
    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' 
} 

Meine databaseHelper Klasse erweitert OrmLiteSqliteOpenHelper Alles funktionierte gut, während meine compileSdkVersion bei 19 Hier war das, was ich aktualisiert:

  • Gradle: classpath 'com.android.tools.build:gradle:1.1.0'> 1.3.0
  • sdk Version: compileSdkVersion 19> 23
  • appcompat: com.android.support:appcompat-v7:19.0.1> 23
  • Play-Dienste

Meine databaseHelper Klasse ist in der gleichen Verpackung als andere Klassen, die gut funktionieren!

Vielen Dank für Ihre Hilfe

+0

Ich habe das gleiche Problem. Ich versuche immer noch herauszufinden, was es ist – Gatunox

+0

BTW ich habe festgestellt, dass jeder Ort ich anonyme Klassen erstellen ich bekomme die E/dalvikvm: Konnte nicht finden, Fehler auf der Logcat. Wenn Sie die anonyme Klassenerstellung entfernen, scheint es zu funktionieren. aber das WIERD-Ding ist das gewohnt zu arbeiten, und arbeiten immer noch auf API größer als 19 – Gatunox

+1

Wer hat eine Lösung dafür? Ich habe das gleiche Problem – cpalosrejano

Antwort

0

ich das gleiche Problem eine gewisse Zeit hatte, versuchen ProGuard auszuschalten

minifyEnabled false 
+1

Vielen Dank, aber es ist immer noch das gleiche; ( – totteire

1

ich das Problem gefunden haben. MultiDex wird vor Lollypop nicht korrekt unterstützt. Nachdem ich die zusätzlichen Bibliotheken entfernt und die Multidex-Einstellung auf Gradle entfernt habe, hat alles gut funktioniert.

entfernen.

multiDexEnabled true 

Grüße

10

Wie Sie multiDexEnabled true in Ihrem build.gradle haben. Stellen Sie sicher, dass Ihre Anwendungsklasse MultiDexApplication anstelle der Application-Klasse erweitert.

Alternativ können Sie wie in den Dokumenten vorgeschlagen die folgende Methode zu Ihrer Anwendungsklasse hinzufügen.

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
+1

Danke, es hat mir geholfen. Ich habe Application to MultiDexApplication geändert – ch3tanz

Verwandte Themen