Ich bin seit gestern in Schwierigkeiten. Während meines Praktikums hatte ich folgenden Buildfehler, aber ich konnte nicht verstehen warum:
$ cordova build android
[...]
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/BuildHelper;
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 3.379 secs
Error: /home/thor/Projects/App_CDP/platforms/android/gradlew: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/BuildHelper;
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Hier ist die Ausgabe von cordova plugins list
, ich habe nicht den Support-v4 / v13-Konflikt, wie Sie sehen können:
$ cordova plugin list
com.googlemaps.ios 2.2.0-fixed "Google Maps SDK for iOS"
com.moust.cordova.videoplayer 1.0.1 "Video Player"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.5 "Console"
cordova-plugin-device 1.1.4 "Device"
cordova-plugin-facebook4 1.9.1 "Facebook Connect"
cordova-plugin-file 4.0.0 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-geolocation 2.4.3 "Geolocation"
cordova-plugin-googlemaps 1.4.0 "phonegap-googlemaps-plugin"
cordova-plugin-inappbrowser 1.7.1 "InAppBrowser"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.2 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
{}
Hier noch einige weitere Informationen:
$ cordova -v
7.0.1
$ ionic -v
2.1.4
android
cordova
ionic-framework
build
Biboozz
quelle
quelle
Antworten:
Höchstwahrscheinlich verwenden Sie die neu veröffentlichte Version
[email protected]
, die jetzt BuildHelper.java (wie in Ihrer Fehlermeldung angegeben) und PermissionHelper.java enthält , aber Sie haben immer noch die veraltete Cordova-Plugin-Kompatibilität in Ihrem Projekt, die dazu führt, dass der Build fehlschlägt, weil es enthält auch diese Klassen .Um dies zu beheben, entfernen Sie es
cordova-plugin-compat
aus Ihrem Projekt, um diese Java-Dateien vomcordova-android
Plattformprojekt zu deinstallieren :cordova plugin rm cordova-plugin-compat --force
Aktualisieren
Um diese Änderung beizubehalten, fügen Sie
[email protected]
eine Engine hinzu, die eine Engine-Einschränkung enthält , um zu verhindern, dass die Java-Dateien erneut auf der[email protected]+
Plattform installiert werden:cordova plugin add cordova-plugin-compat@1.2
Ein weiteres Update (kopiert aus Kommentaren)
Nach dem Entfernen und Hinzufügen von [email protected] können Sie anstelle des Entfernens und Hinzufügens der gesamten Android-Plattform nur die Dateien BuildHelper.java und PermissionHelper.java aus den Ordnerplattformen / android entfernen
quelle
[email protected]
, stellen Sie sicher, dass daspackage.json
undconfig.xml
in Ihrem Projektordner"6.2.3"
nicht verwendet wird"^6.2.3"
, löschen Sie denplatforms/android
Ordner, führen Sie ihn erneut auscordova prepare android
undcordova build android
sollten Sie keine Fehler haben.The plugin 'cordova-plugin-compat' is required by (cordova-plugin-geolocation) but forcing removal
?Ich werde meine 2 Cent hinzufügen, da keine der Lösungen für mich funktioniert. Einzige Sache, die bei mir funktioniert hat:
cordova plugin rm cordova-plugin-compat --force cordova platform rm android cordova platform add android@6.3.0
quelle
Ich musste es machen:
cordova plugin rm cordova-plugin-compat --force cordova plugin add cordova-plugin-compat@1.2 cordova platform rm android cordova platform add android@6.3.0
Bedenken Sie, dass Sie Cordova-Plugin-kompatibel nicht einfach entfernen können, da Plugins wie Cordova-Plugin-Datei davon abhängen.
quelle
Ich kenne die bereits beantwortete Frage, möchte aber einen Link zu den offiziellen Versionshinweisen hinzufügen:
https://cordova.apache.org/news/2017/11/10/plugins-release.html
Stellen Sie daher sicher, dass Sie alle aufgelisteten Plugins auf die in den Versionshinweisen angegebene Version aktualisieren.
quelle
Eine Lösung: Downgrade
cordova android platform @6.2.3
$
cordova platform remove android && cordova platform add [email protected]
quelle
Mit meinem Ionic 3-Projekt war es genug zu laufen:
ionic cordova plugin rm cordova-plugin-compat --force ionic cordova plugin add cordova-plugin-compat@1.2
Führen Sie dann erneut einen Build aus. Die Plattform muss nicht entfernt und hinzugefügt werden.
quelle
Ich benutze für
Ionic 3
Projekt, ich muss tun:ionic cordova plugin rm cordova-plugin-compat --force ionic cordova plugin add cordova-plugin-compat@1.2 ionic cordova platform rm android ionic cordova platform add android@6.3.0
Es ist Arbeit für mich.
quelle
Ich hatte den gleichen Fehler und ich hatte kein kompatibles Plugin in meinen Plugins. Ich habe nur diesen Code ausgeführt, dann habe ich gebaut, es hat gut funktioniert
$ cordova platform remove android && cordova platform add android@6.2.3
quelle
cordova plugin rm cordova-plugin-kompatibel --force
Cordova Plattform RM Android
Cordova Plattform hinzufügen [email protected]
Cordova Plugin [email protected] hinzufügen
in dieser Reihenfolge funktioniert für mich !! Danke vielmals
quelle
Das ist die Lösung:
cordova plugin rm cordova-plugin-compat --force
quelle
Entfernen Sie das Plugin Cordova-Plugin-kompatibel Android SDK über Version 6.3.0 oder gleichwertig, da es in Cordova Android integriert ist.
cordova plugin rm cordova-plugin-kompatibel --force
Als Referenz unten
https://cordova.apache.org/announcements/2017/09/27/android-release.html
quelle
Ich bestätige diese Antwort von DaveAlden Works !!
Aber in der plugin.xml innerhalb der Cordova-Plugin-Kompatibilität hatte ich einen Syntaxfehler mit weniger als dem Zeichen '<', weil es in xml illegal ist.
Dieses Problem tritt in Visual Studio auf und Sie können das Plugin nicht mit dem Konfigurationsmanager installieren, da dieser Syntaxfehler in XML in der Plugin-Ressource erkannt wird.
Sie müssen mit der Befehlszeile installieren, wie DaveAlden sagt.
Fehler ignorieren und nach der Installation ersetzen:
<engine name="cordova-android" version="<6.3.0"/>
durch
<engine name="cordova-android" version="<6.3.0"/>
Und Kompilierungslauf am Ende !! :) :)
quelle
Ich habe das Compat-Plugin nach dem Update von der Abhängigkeit anderer Plugins entfernt; wie Kamera auf die neue Version und es funktioniert. Beispiel: Cordova-Plugin rm Cordova-Plugin-Kamera - Cordova-Plugin speichern Cordova-Plugin-Kamera hinzufügen @ neueste - Speichern Nach dem neuen Plugin wurde die alte Version 2.3.0 durch 4.0.2 für Kamera-Plugin ersetzt.
nach diesem Schritt. Ich habe einfach das Plugin "Compat" Cordova Plugin rm Cordova-Plugin-kompatibel --force entfernt
quelle
Auf Wiederaufnahme. Dies bedeutet, dass die Plugin-Kamera nicht mit der letzten Version von Android Oreo kompatibel ist
quelle
Ich benutze Ionic 4 und dies hat es für mich gelöst (es dauert nur ein paar Sekunden, um zu laufen):
quelle
Möglicherweise stimmen die Plugins in den Android-Builds nicht überein. Führen Sie also besser 2 Befehle für eine erfolgreiche Erstellung aus
cordova platform rm android cordova platform add android
Nach 2 verschwendeten Tagen scheint dies nur eine funktionierende Lösung für mich zu sein.
quelle
Keine der oben genannten Lösungen hat bei mir funktioniert. Für mich bestand die Lösung darin, gradle zu aktualisieren. Ich habe Gradle 5.6.2 verwendet. Das Aktualisieren auf 5.6.4 und das Entfernen und Hinzufügen meiner Android-Plattform und Plugins haben den Trick getan.
Gradle unter Mac OS X installieren / aktualisieren
quelle