I’m in trouble since yesterday. In my internship I faced the following build error, but I couldn’t understand why :
$ 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.
Here is the output of cordova plugins list
, I don’t have the support-v4/v13 conflict as you can see :
$ 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"
{}
Here are also some more informations:
$ cordova -v
7.0.1
$ ionic -v
2.1.4
17
Answers
Most likely you are using the newly released
[email protected]
, which now includes BuildHelper.java (as noted in your error message) and PermissionHelper.java, but you still have the deprecated cordova-plugin-compat in your project which is causing the build to fail because it also contains these classes.To fix this, remove
cordova-plugin-compat
from your project to uninstall these Java files from thecordova-android
platform project::Update
To persist this change add
[email protected]
which includes an engine constraint to prevent the Java files being re-installed into the[email protected]+
platform:Another update (copypasted from comments)
After removing and adding [email protected], instead of removing and adding entire Android platform you can only remove files BuildHelper.java and PermissionHelper.java from folder platforms/android
Going to add my 2 cents since none of the solutions work for me.
Only thing that worked for me:
One solution: downgrade
cordova android platform @6.2.3
$
cordova platform remove android && cordova platform add [email protected]
I had to do:
considering you can’t simply remove cordova-plugin-compat because plugins like cordova-plugin-file depend on it.
I’am using for
Ionic 3
Project, I have to do:it’s work for me.
I confirm that Answer by DaveAlden Works !!
But in the plugin.xml inside the cordova-plugin-compat I had a syntax error with less than sign ‘<‘, because it’s illegal in xml.
This issue appears in visual studio, and you can’t install plugin with the config manager because it detects this syntax error in xml on the plugin resource.
You must install with command line like DaveAlden says.
Ignore errors, And after install replace :
by
And compilation run at the end!! 🙂
With my Ionic 3 project it was enough to run:
And then run a build again. No need to remove and add the platform.
cordova plugin rm cordova-plugin-compat –force
cordova platform rm android
cordova platform add [email protected]
cordova plugin add [email protected]
in this order, works for me !! thanks a lot
This is the solution:
I know the the question already answered, but I want to add link to the official release notes:
https://cordova.apache.org/news/2017/11/10/plugins-release.html
So, make sure you update all listed plugins to the version posted in release notes.
I have remove the Compat plugin after the update the dependency of other plugins; like Camera to the new version and it’s work.
Example:
cordova plugin rm cordova-plugin-camera –save
cordova plugin add cordova-plugin-camera@latest –save
Post the new plugin addition the old version 2.3.0 was replaced with 4.0.2 for Camera plugin.
after this step. I have simply remove the plugin “Compat”
cordova plugin rm cordova-plugin-compat –force
On Resume. This mean that plugin-camera is not compatible with the last version of android oreo
i had the same error, and i didn’t have compat plugin in my plugins, i just run that code, then i built, it worked fine
I am using Ionic 4 and this solved it for me (only takes a few seconds to run):
There may be mismatch of the plugins in the android builds. So better run 2 commands for successful build
After wasted 2 days this seems to be only working solutions for me.
Remove plugin cordova-plugin-compat forcefully android sdk above version 6.3.0 or equal because it is integrated with cordova android.
cordova plugin rm cordova-plugin-compat –force
As a reference below
https://cordova.apache.org/announcements/2017/09/27/android-release.html
None of the above solutions worked for me. For me the solution was upgrading gradle. I was using gradle 5.6.2. Updating to 5.6.4 then removing and adding my android platform and plugins did the trick.
Install / upgrade gradle on Mac OS X