true transformdexwithdexforrelease transformdexarchivewithdexmergerfordebug transformclasseswithdexfordebug plugin permissionhelper multiple multidexenabled lorg for files failed define compat buildhelper app android cordova ionic-framework build

android - transformdexwithdexforrelease - Varios archivos dex definen Lorg/apache/cordova/BuildHelper



multiple dex files define lorg/apache/cordova/buildhelper; (16)

Estoy en problemas desde ayer. En mi pasantía enfrenté el siguiente error de compilación, pero no podía entender por qué:

$ 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.

Aquí está la salida de la cordova plugins list de cordova plugins list , no tengo el conflicto support-v4 / v13 como puedes ver:

$ 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" {}

Aquí también hay más información:

$ cordova -v 7.0.1 $ ionic -v 2.1.4


Con mi proyecto Ionic 3 fue suficiente para ejecutar:

ionic cordova plugin rm cordova-plugin-compat --force ionic cordova plugin add [email protected]

Y luego ejecuta una compilación de nuevo. No es necesario eliminar y agregar la plataforma.


Confirmo que la respuesta de DaveAlden Works !!

Pero en el plugin.xml dentro del cordova-plugin-compat tuve un error de sintaxis con menos que el signo ''<'', porque es ilegal en xml.

Este problema aparece en Visual Studio, y no puede instalar el complemento con el administrador de configuración porque detecta este error de sintaxis en xml en el recurso del complemento.

Debe instalar con la línea de comando como dice DaveAlden.

Ignorar errores, y después de instalar reemplazar:

<engine name="cordova-android" version="<6.3.0"/>

por

<engine name="cordova-android" version="&lt;6.3.0"/>

Y la compilación corre al final !! :)



En resumen. Esto significa que la cámara de complemento no es compatible con la última versión de Android Oreo


Esta es la solución:

cordova plugin rm cordova-plugin-compat --force


Estoy usando Ionic 4 y esto lo resolvió por mí (solo toma unos segundos para ejecutarse):

cordova clean


Estoy usando para el Proyecto Ionic 3 , tengo que hacer:

ionic cordova plugin rm cordova-plugin-compat --force ionic cordova plugin add [email protected] ionic cordova platform rm android ionic cordova platform add [email protected]

Es trabajo para mí.


He eliminado el complemento Compat después de la actualización de la dependencia de otros complementos; como Cámara a la nueva versión y funciona. Ejemplo: cordova plugin rm cordova-plugin-camera --save cordova plugin add cordova-plugin-camera @ latest --save Publique la nueva adición del complemento, la versión anterior 2.3.0 fue reemplazada por 4.0.2 para Camera plugin.

despues de este paso. Simplemente eliminé el complemento "Compat" cordova plugin rm cordova-plugin-compat --force


Lo más probable es que esté utilizando el [email protected] recientemente lanzado, que ahora incluye BuildHelper.java (como se indica en su mensaje de error) y PermissionHelper.java , pero aún tiene el obsoleto cordova-plugin-compat en su proyecto que está causando que la compilación falle porque también contiene estas clases .

Para solucionar esto, elimine cordova-plugin-compat de su proyecto para desinstalar estos archivos Java del proyecto de plataforma cordova-android ::

cordova plugin rm cordova-plugin-compat --force

Actualizar

Para persistir este cambio, agregue [email protected] que incluye una restricción del motor para evitar que los archivos Java se reinstalen en la plataforma [email protected]+ :

cordova plugin add [email protected]

Otra actualización (copiada de los comentarios)

Después de eliminar y agregar [email protected], en lugar de eliminar y agregar toda la plataforma Android, solo puede eliminar los archivos BuildHelper.java y PermissionHelper.java de las plataformas de carpetas / android


Puede haber una falta de coincidencia de los complementos en las compilaciones de Android. Así que mejor ejecuta 2 comandos para una compilación exitosa

cordova platform rm android cordova platform add android

Después de perder 2 días, esto parece ser solo una solución para mí.


Sé que la pregunta ya respondió, pero quiero agregar un enlace a las notas oficiales de la versión:

https://cordova.apache.org/news/2017/11/10/plugins-release.html

En nuestro último lanzamiento de complementos, desaprobamos cordova-plugin-compat ya que se integró en [email protected]. Entonces, para este ciclo de lanzamiento, hemos eliminado la dependencia de los complementos que confiaban en él y le dimos a los complementos un salto de versión principal. Los siguientes complementos han eliminado cordova-plugin-compat: cordova-plugin-camera, cordova-plugin-contactos, cordova-plugin-file, cordova-plugin-geolocation, cordova-plugin-media y cordova-plugin-media-capture .

Por lo tanto, asegúrese de actualizar todos los complementos enumerados a la versión publicada en las notas de la versión.


Tenía que hacer:

cordova plugin rm cordova-plugin-compat --force cordova plugin add [email protected] cordova platform rm android cordova platform add [email protected]

teniendo en cuenta que no puede simplemente eliminar cordova-plugin-compat porque los complementos como cordova-plugin-file dependen de él.


Tuve el mismo error y no tenía el complemento de compatibilidad en mis complementos, simplemente ejecuté ese código, luego construí, funcionó bien

$ cordova platform remove android && cordova platform add [email protected]


Una solución: rebajar la cordova android platform @6.2.3

$ cordova platform remove android && cordova platform add [email protected]


Voy a agregar mis 2 centavos ya que ninguna de las soluciones funciona para mí. Lo único que funcionó para mí:

cordova plugin rm cordova-plugin-compat --force cordova platform rm android cordova platform add [email protected]


cordova plugin rm cordova-plugin-compat --force

plataforma cordova rm android

plataforma cordova agregar [email protected]

complemento cordova agregar [email protected]

en este orden, funciona para mi !! muchas gracias