it-swarm.com.de

com.Android.build.transform.api.TransformException

ich versuche, Google-Anmeldung zu integrieren. In meiner App habe ich die folgenden Bibliotheken hinzugefügt:

compile 'com.google.Android.gms:play-services-identity:8.1.0'
compile 'com.google.Android.gms:play-services-plus:8.1.0'

füge dies auch zum Projekt Build Gradle hinzu:

classpath 'com.google.gms:google-services:1.4.0-beta3'

füge auch ein Plugin zu App Build Gradle hinzu:

apply plugin: 'com.google.gms.google-services'

fügen Sie dann die erforderlichen Berechtigungen hinzu. Wenn ich jedoch versuche, meine App auszuführen, wird der folgende Fehler angezeigt:

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    com.Android.build.transform.api.TransformException: com.Android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\Java.exe'' finished with non-zero exit value 2
159
saeed shahini

Versuchen Sie, multiDexEnabled true zu Ihrer App-Datei build.gradle hinzuzufügen.

 defaultConfig {
    multiDexEnabled true
}

EDIT:

Versuchen Sie zuerst Steve's Antwort . In dem Fall, dass es häufig vorkommt oder der erste Schritt nicht geholfen hat, könnte multiDexEnabled helfen. Für diejenigen, die es lieben, tiefer zu graben, gibt es hier einige ähnliche Probleme (mit mehr Antworten):

: app: dexDebug ExecException beendet mit Exit-Wert 2 ungleich Null

Fehler: Ausführung für Task ': app: dexDebug' fehlgeschlagen. Com.Android.ide.common.process.ProcessException

313
JuliusScript

Eine andere Sache, auf die Sie achten sollten, ist, dass Sie sie nicht verwenden

compile 'com.google.Android.gms:play-services:8.3.0'

Das wird ALLE Spieldienste importieren und es wird kaum mehr als eine Hallo-Welt brauchen, um das 65535-Methodenlimit einer einzelnen Dex-APK zu überschreiten.

Geben Sie immer nur die Dienste an, die Sie benötigen, zum Beispiel:

compile 'com.google.Android.gms:play-services-identity:8.3.0'
compile 'com.google.Android.gms:play-services-plus:8.3.0'
compile 'com.google.Android.gms:play-services-gcm:8.3.0'
146
A.Grandt

Ich musste nur mein Projekt bereinigen und es anschließend erfolgreich erstellen.

137
Steve Ganem

Dieser Fehler trat für mich auf, als ich meinem Projekt einige neue Methoden hinzufügte. Ich wusste, dass ich nicht annähernd das 65k-Methodenlimit erreicht hatte und wollte die MultiDex-Unterstützung für mein Projekt nicht aktivieren, wenn ich helfen könnte.

Ich habe das Problem behoben, indem ich den für die Task :app:transformClassesForDexForDebug verfügbaren Speicher vergrößerte. Dazu habe ich in gradle.build javaMaxHeapSize angegeben.

gradle.build

Android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}

Ich habe es versucht, nachdem ich mit anderen gebräuchlichen Lösungen für dieses Problem keinen Erfolg hatte:

  • Ein Projekt ausführen clean
  • Manuelles Löschen der Verzeichnisse /app/build und /build aus meinem Projekt
  • Gradle Cache wird ungültig gemacht und Android Studio neu gestartet

Fehler

Fehler: Ausführung fehlgeschlagen für Task> ': app: transformClassesWithDexForDebug'. com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: 'command' /Library/Java/JavaVirtualMachines/jdk1.8.0_45 verarbeiten. jdk/Contents/Home/bin/Java '' wurde mit einem Exit-Wert ungleich Null beendet

Hinweis: Das Erhöhen des für die DEX-Task verfügbaren Arbeitsspeichers kann auf Systemen mit geringerem Arbeitsspeicher zu Leistungsproblemen führen - Link .

23
Maurice Gavin

Ich hatte auch mit ähnlichen Problemen in Android Studio 1.5.1 und Gradle 1.5.0 zu kämpfen. Ich muss nur unerwünschte Bibliotheken aus Abhängigkeiten entfernen, die möglicherweise automatisch in der build.gradle-Datei meiner App hinzugefügt werden. Eine davon war: compile 'com.google.Android.gms: play-services: 8.4.0'. Versuchen Sie daher, für Best Practices nur bestimmte Wiedergabedienstbibliotheken einzuschließen, wie dies nur für Anzeigen gilt

dependencies {
    compile 'com.google.Android.gms:play-services-ads:8.4.0'
}

Obwohl

defaultConfig {
    multiDexEnabled true
}

dadurch wird das Problem ebenfalls behoben, es sind jedoch viele Notizen in der gradle-Konsole enthalten, sodass es verwirrend ist, die anderen tatsächlichen Probleme während des Builds zu finden

8
raul

sie können die Dokumentation von Android sehen

Android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.Android.support:multidex:1.0.0'
}

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.Android.multidex.myapplication">
    <application
        ...
        Android:name="Android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>
4
David Hackro

In meinem Fall ändere buildToolsVersion von "24" auf "23.0.2", löse das Problem.

3
Ayman Mahgoub

Ich verwende AS 1.5.1 und habe das gleiche Problem festgestellt. Aber nur das Projekt zu säubern geht einfach nicht, also habe ich etwas versucht.

  • sauberes Projekt
  • aS neu starten
  • Projekt synchronisieren

Das hat bei mir geklappt, also hoffe ich, dass das hilft.

3
kcNeko

In meinem Fall ist die Ausnahme aufgetreten, weil nicht alle Google Play-Serviceerweiterungen dieselbe Version wie folgt haben

 compile 'com.google.Android.gms:play-services-plus:9.8.0'
 compile 'com.google.Android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.Android.gms:play-services-analytics:8.3.0'

Es hat funktioniert, als ich dies in geändert habe

compile 'com.google.Android.gms:play-services-plus:9.8.0'
 compile 'com.google.Android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.Android.gms:play-services-analytics:9.8.0'
2
Uma Achanta

Löschen Sie zuerst die Zwischendateien IHR APP-ORDNER\app\build\intermediates OR Bereinigen Sie Ihr Projekt und erstellen Sie es neu.

Dann füge hinzu

multiDexEnabled true

d.h.

defaultConfig {
        multiDexEnabled true
}

Es ist Arbeit für mich

Ich hatte das gleiche Problem, als ich über git auf die alte Version zurückgesetzt habe und diese Version die vorherige .jar-Bibliothek einer Drittanbieter-API hatte, und aus irgendeinem Grund stellte sich heraus, dass sich beide JARs desselben SDKs, nur verschiedene Versionen, im Ordner/libs befanden .

1
lxknvlk

Ich habe dieses Problem behoben, indem ich die neueste Version buildToolsVersion verwendet habe.

Android {
    //...
    buildToolsVersion '26.0.2' // change from '23.0.2'
    //...
}
1
Tung Duong

die Antwort zum Schreiben lautet gradle set defaultConfig {multiDexEnabled true}, dann Anwendungsname im Manifest Android: name = "Android.support.multidex.MultiDexApplication". Wünschte, diese Antwort wäre hilfreich Jemand

0
Mosa

Ich habe dieses Problem gelöst, indem ich Folgendes hinzugefügt habe: In build.gradle:

defaultConfig {
    multiDexEnabled true
}

in local.properties,

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

abhängigkeit erwähnen:

compile 'com.Android.support:multidex:1.0.1'

Reinigen und neu aufbauen.

0

dieser Code löste das Problem

defaultConfig {
        multiDexEnabled true
}

Die einfachste Methode zum Implementieren von Google-Anmeldungen finden Sie unter: Google-Anmeldung bei Android

Versuch auch

dexOptions {
        javaMaxHeapSize "4g" 
    }

Behalten Sie außerdem dieselbe Versionsnummer für verschiedene Dienste bei.

0
user6435056

Wenn die verschiedenen Abhängigkeiten dasselbe Jar haben, verursacht dies auch diesen Erstellungsfehler.

Zum Beispiel:

compile('com.a.b:library1');
compile('com.c.d:library2');

Wenn "library1" und "library2" dasselbe Jar mit dem Namen xxx.jar haben, tritt ein solcher Fehler auf.

0
wqycsu

Ich habe ein paar PNGs und die Build-Nummer im Gradle geändert und jetzt bekomme ich diese. Keine Menge an Reinigung und Neustart hat geholfen. Durch Deaktivieren von Instant Run wurde das Problem behoben. YMMV

0
SteelBytes

Wenn Sie die neueste Gradle-Version verwenden, z. B. classpath 'com.Android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3', aktualisieren Sie das neueste Support-Repository über den SDK-Manager und erstellen Sie das gesamte Projekt neu.

0
goonerDroid

Wenn Sie diese Referenz für das Cordova-Plugin hinzufügen müssen, fügen Sie die nächste Zeile in Ihre Datei plugin.xml ein.

<framework src="com.Android.support:support-v4:+" />
0
Adexe Rivera

Ich hatte die gleiche Option und sobald ich Instant Run deaktiviert hatte, funktionierte es auf meinem API16-Gerät einwandfrei, aber auf dem API24-Gerät funktionierte es einwandfrei mit Instant Run.

Hoffe, das hilft jemandem, der das gleiche Problem hat

0
x10sion

In dem Fall, dass 'Instant Run' aktiviert ist, deaktivieren Sie es einfach.

0
Ravid Rinek

Es ist mir wegen eines Eclipse-Speicherverlusts passiert. Ich musste meinen Computer neu starten.

0
Ronen Festinger

Gehen Sie einfach zu Build - Build-Typen bearbeiten - Registerkarte Eigenschaften - Build-Typ-Version und führen Sie ein Downgrade auf Version 23.0.1 durch. OK klicken. Dies funktioniert für Android Studio 1.5. Es hat bei mir funktioniert.

0
Dima Rowland