it-swarm.com.de

Fehler: Gradle: Ausführung für Task ': app: preDexDebug' fehlgeschlagen

Ich ließ ein selbst erstelltes Glas aus einem anderen Projekt als Bibliothek in mein anderes Projekt importieren. Als ich den Code in diesem Projekt geändert und ein neues Glas exportiert habe, um das alte zu ersetzen, kann ich meine App nicht mehr ausführen. Ich erhalte nur den folgenden Fehler:

enter image description here

Ich habe versucht, zu entfernen und als Abhängigkeit hinzuzufügen und als Bibliothek hinzuzufügen. Nichts scheint zu funktionieren. Ich habe auch sauber gebaut und einen Umbau gemacht.

10
Kersch

Wir haben dieses Problem in der Vergangenheit gesehen, als unser Projektmit einer Java-Version kompiliert wurde, die sich von der zum Kompilieren der Bibliothek verwendeten unterscheidet.Die magische Zahl ist einfach verwendet, um Klassendateien zu identifizieren damit ist das hier nicht das Problem. Das Problem ist die Java-Version (0034.0000 == Java 8).

Am einfachsten ist es, Java 6 als Ziel zu verwenden. Möglicherweise müssen Sie neuere Syntax aus Ihrem Code entfernen. In unserem Fall gehörten sowohl das Projekt als auch die Bibliothek uns, sodass wir Folgendes hinzufügen konnten, um die von uns benötigte Java-Version zu erzwingen:

Android-Bibliotheken

fügen Sie für Android-Bibliotheken diesen Code zum Erweiterungsobjekt "Android" hinzu:

Android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    ...
}

Java-Bibliotheken

fügen Sie für Java-Bibliotheken diesen Code auf der "obersten Ebene" hinzu:

apply plugin: 'Java'

version '1.8.1'
group   'com.yourcompany.package'

sourceCompatibility = JavaVersion.VERSION_1_6   //these two lines
targetCompatibility = JavaVersion.VERSION_1_6   //are the only ones that matter

ANMERKUNG: Die letzten beiden Zeilen sind die einzigen, die wichtig sind. Ich habe die anderen hinzugefügt, um zu zeigen, wo diese Zeilen in Bezug auf den Rest Ihrer Gradle-Build-Datei hingehören.

25
gMale

Für uns wurde dies durch die Version der Android SDK-Build-Tools verursacht. Habe das Problem auf v23.x, aber nicht auf v22.x. Sie müssen v23 deinstallieren, damit cordova v22 auswählt.

Möglicherweise eher ein Symptom als eine Ursache, aber dies kann jemanden in der gleichen Situation davon abhalten.

1
Dan Caseley

hinzufügen:

sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X

in der Android-Projekt-Gradle-Datei und der Java-Bibliothek-Gradle-Datei hat für mich gearbeitet.

Es tut mir leid, ich hätte +1 gegeben, aber ich habe keinen ausreichend guten Ruf

0
jwinwood

Obwohl Ihr Problem behoben zu sein scheint, kam es hier zu einem ähnlichen Fehler (beim Erstellen der Beispiele von developer.Android.com). Falls es für andere hilfreich ist, konnte ich es lösen, indem ich Java_HOME auf den entsprechenden Wert setzte. In meinem Fall war es:

export Java_HOME=/usr/lib/jvm/Java-6-openjdk-AMD64
0
user1794469