2016-04-27 7 views
0

Meine App gibt NoClassDefFoundError für Versionen von SDK 19 oder darunter. Ich hatte in meinem gradleAndroid: NoClassDefFoundError für Android 4.4 und unter

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 
    defaultConfig { 
     applicationId "com.idg.mail" 
     minSdkVersion 14 
     targetSdkVersion 23 
     multiDexEnabled = true 
    } 

Jetzt habe ich versucht, es zu ändern, um

compileSdkVersion 19 
    buildToolsVersion "23.0.1" 
    defaultConfig { 
     applicationId "com.idg.gatcamail" 
     minSdkVersion 19 
     targetSdkVersion 19 
     multiDexEnabled = true 
    } 

i als auch in app-> module settings - android - sdk geändert. Mit diesen Änderungen baute ich das Projekt, aber es gibt immer noch denselben Fehler auf meinem android 4.4 und es läuft auf höheren Versionen.

Die Klasse ist eine Klasse, die in dem Code definiert ist, in dem ich Netzwerkoperationen handhabe.

Wie kann ich tun, um die Fehlersuche in dieser Ausgabe

+1

Für welche Klasse Sie haben die Ausnahme? –

+0

ist eine Java-Klasse, die ich definiert habe, die hauptsächlich die Aufgabe übernimmt, Daten vom Server – png

+0

abzurufen. Es könnte auch durch die 'multiDexEnabled'-Option verursacht werden. Sind Sie sicher, dass es auf wahr gesetzt werden muss und was sind Abhängigkeiten? –

Antwort

2

ich fast sicher bin, dass es multidex Problem. Wenn es auf SDK 21 richtig läuft - es ist Multidex-Problem. Hier

ist offizielle Info: Multidex

Wenn Sie benutzerdefinierte Implementierung von Anwendungsklasse verwenden, es hat MultiDexApplication Klasse zu erweitern. Auch hier ist eine Graufahne erforderlich. Wenn Sie keine benutzerdefinierte Application-Klasse verwenden, fügen Sie einfach einen Eintrag hinzu, der in Ihrem Manifest enthalten ist. Dies wird in der Dokumentation beschrieben.

Edit: Fast vergessen - Sie haben Abhängigkeit hinzuzufügen, multidex wird mit dieser Bibliothek zur Verfügung gestellt: compile 'com.android.support:multidex:1.0.1'

+0

@Tuff, ja, Sie können –

+0

Ich hatte bereits Gradle Flags, aber die Anwendungsklasse wurde nicht geändert. Wie das funktioniert> sdk-21. Mit dieser Änderung arbeitet es an beiden Versionen .. aber wie es vorher bei höheren Versionen funktionierte – png

+0

@preetha Multidex ist Dalvik Ausgabe, auf Android 5+ gibt es stattdessen ART Dalvik. Also auf api 21+ gibt es kein 64k Methodenlimit :) – 3mpty