
Maverick.pe
Ich erhalte diesen Fehler beim Ausführen meiner Android-App (ich habe sie bereinigt und dann erstellt, aber der Fehler ist immer noch vorhanden)
- Synchronisation: OK
- Projekt erstellen: OK
- Sauber: OK
- Ausführen: Fehler
Fehler: Ausführung für Aufgabe „:app:dexDebug“ fehlgeschlagen _25\bin\java.exe” wurde mit einem Nicht-Null-Exit-Wert 2 beendet
Meine Gradle-Datei:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.rzr.rzevallosr.miappdepruebas"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// This library handles authentication and authorization
compile 'com.spotify.sdk:spotify-auth:[email protected]'
// This library handles music playback
compile 'com.spotify.sdk:spotify-player:[email protected]'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.+'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile files('libs/spotify-web-api-android-master-0.1.0.jar')
compile files('libs/okio-1.3.0.jar')
}
BEARBEITEN: Ich habe “compile fileTree (dir: ‘libs’, include: [‘*.jar’])” es hat meine Bibliotheken doppelt kompiliert, also kommentiere ich nur:
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
und es funktioniert gut.

minhazur
Dieses Problem ist sehr wahrscheinlich darauf zurückzuführen, dass das von Android auferlegte 65K-Methodendex-Limit überschritten wird. Dieses Problem kann gelöst werden, indem Sie entweder das Projekt bereinigen und einige nicht verwendete Bibliotheken und Methoden aus Abhängigkeiten in build.gradle entfernen. ODER durch Hinzufügen von Multidex-Unterstützung.
Wenn Sie also Bibliotheken und Methoden behalten müssen, können Sie die Multi-Dex-Unterstützung aktivieren, indem Sie sie in der Gradle-Konfiguration deklarieren.
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
Lesen Sie mehr über die Unterstützung und Entwicklung von Multidex Apps mit mehr als 65.000 Methoden hier.

Amit Tümkur
Für mich war das Problem, dass ich einen unnötigen Complie-Bibliothekscode in build.gradle eingefügt hatte
dependencies {
compile 'com.google.android.gms:play-services:7.5.0'
}
was über 65.000 Methoden verursachte, also entfernte es, gradle sync, säuberte das Projekt und lief dann erneut und dann wurde dieser Fehler gestoppt. Ich brauchte nur Karten und gcm, also habe ich diese Zeilen eingefügt und das Projekt synchronisiert
compile 'com.google.android.gms:play-services-gcm:7.5.0'
compile 'com.google.android.gms:play-services-location:7.5.0'
Hallo Leute, ich bin erneut auf dieses Problem gestoßen, und diesmal lag es an der Änderung der Version der Build-Tools, und ich musste wirklich Multidex aktivieren. Also habe ich diese build.gradle-Datei meiner App hinzugefügt.
defaultConfig {
applicationId "com.am.android"
minSdkVersion 13
targetSdkVersion 23
// Enabling multidex support.
multiDexEnabled true
}
dexOptions {
incremental true
javaMaxHeapSize "2048M"
jumboMode = true
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:multidex:1.0.1'
}
Erstellen Sie eine Klasse, die die Anwendungsklasse erweitert, und fügen Sie diese Methode in die Klasse ein.
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
auch in die OnCreate-Methode aufnehmen
@Override
public void onCreate() {
MultiDex.install(this);
super.onCreate();
}

Vilen
Nur für den Fall, dass jemand immer noch damit zu kämpfen hat und keine Ahnung hat, warum dies passiert und wie es behoben werden kann. Tatsächlich dieser Fehler
Fehler: Ausführung für Aufgabe „:app:dexDebug“ fehlgeschlagen. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Prozess ‘Befehl ‘C:\Program Files\Java\jdkx.x.x_xx\bin\java.exe” beendet mit Ausgangswert ungleich Null 2
kann viele Gründe haben, aber sicherlich nicht etwas, das mit Ihrer JDK-Version zusammenhängt, also verschwenden Sie Ihre Zeit nicht in die falsche Richtung. Dies sind zwei Hauptgründe dafür
- Sie haben dieselbe Bibliothek oder JAR-Datei, die mehrere Orte enthält, von denen einige miteinander in Konflikt stehen.
- Sie sind dabei, das Methodenlimit von 65.000 zu erreichen oder bereits überschritten zu haben
Der erste Fall kann wie folgt behoben werden: Finden Sie heraus, welche Abhängigkeiten Sie mehrfach eingebunden haben. Führen Sie dazu den folgenden Befehl im Android Studio Terminal aus
gradlew -q dependencies yourProjectName_usually_app:dependencies --configuration compile
Dadurch werden alle Abhängigkeiten zurückgegeben, aber JAR-Dateien, die Sie aus dem lib-Ordner einschließen, versuchen, die mit Sternchen markierte Duplizierung zu beseitigen
compile ('com.facebook.android:facebook-android-sdk:4.0.1'){
exclude module: 'support-v4'
}
das ist nicht immer möglich, aber in einigen Fällen können Sie es trotzdem tun, nachdem Sie versucht haben, Module auszuschließen, die viele Male enthalten sind, können Sie es so machen
defaultConfig {
...
...
multiDexEnabled true
}
Für den zweiten Fall, in dem Sie das Methodenlimit überschreiten, sollten Sie versuchen, es zu minimieren, indem Sie enthaltene Bibliotheken entfernen (Hinweis klingt wie die erste Lösung), wenn dies nicht möglich ist, fügen Sie multiDexEnabled true zu Ihrer Standardkonfiguration hinzu
Dies erhöht das Methodenlimit, ist jedoch aufgrund möglicher Leistungsprobleme nicht die beste Vorgehensweise WICHTIG multiDexEnabled true
nur hinzufügen defaultConfig
zu NoClassDefFoundError
ist nicht genug in der Tat auf allen Geräten mit Android <5 Lollipop, dies führt zu unerwartetem Verhalten und

. wie man es löst ist hier beschrieben
Maverick.pe Das wusste ich (damals) noch nicht [‘*.jar’]”compile fileTree(dir: ‘libs’, include: )”
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
kompiliere alles, was die jar-Erweiterung im libs-Ordner hat, also kommentiere (oder lösche) ich einfach diese Zeilen:

und es funktioniert gut. Danke trotzdem! Mein Fehler.
Alexiscanny
compile fileTree(dir: 'libs', include: ['*.jar'])
Ich hatte das gleiche Problem und habe das Entfernen der unnötigen Bibliothek behoben

30. April 2016 um 4:27 Uhr
Armin
defaultConfig {
multiDexEnabled true
}
30. April 2016 um 4:27 Uhr Ich lehne eingebettetes JDK (in 32bit) ab, weil es eingebettet ist
JDK ist 64-Bit Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Öffnen Sie die Moduleinstellung -> SDK-Speicherort -> Deaktivieren Sie Embedded JDk verwenden und legen Sie dann Ihren JDK-Pfad fest, z. B. in Ubuntu
9644800cookie-checkJava beendet mit Nicht-Null-Exit-Wert 2 – Android Gradleyes
@JaredBurrows Das Problem in meinem Fall war, dass meine App zweimal die Bibliotheken kompilierte. Eine auf “compile fileTree” (kompiliert Ihr gesamtes libs-Verzeichnis) und “compile ****”.
– Maverick.pe
30. April 2015 um 21:22 Uhr
Kannst du bitte eine Antwort posten und richtig markieren?
– Jared Burrows
30. April 2015 um 21:39 Uhr
@JaredBurrows fertig. Danke
– Maverick.pe
5. Mai 2015 um 23:15 Uhr
Bitte lesen Sie meinen Beitrag hier stackoverflow.com/a/33387368/740372
– Sanjoy Saha
28. Oktober 2015 um 9:41 Uhr
Ich habe den gleichen Fehler, aber meine Gradle-Datei hat nicht so viele Kompilierungen. Bitte helfen Sie. Ich habe diese Frage gepostet: stackoverflow.com/questions/34558251/… Ich bin völlig neu in der Android-Entwicklung.
– Ayusch
2. Januar 2016 um 3:54 Uhr