cordova - Multiple dex files define Lcom/google/android/gms/iid/zzc

barisdad picture barisdad · Jun 14, 2017 · Viewed 9.6k times · Source

I am trying to compile a cordova app for android and I am getting this error. Any ideas? This is the error I am getting:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':transformClassesWithDexForArmv7Debug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/iid/zzc;

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

I tried adding --stacktrace --debug at the end but I am getting the same error. Any ideas?

Answer

DaveAlden picture DaveAlden · Jun 16, 2017

This issue is caused by a mismatch of versions of the Google Play Services library specified by two or more plugins.

The solution for me was to upgrade one of my plugins - phonegap-plugin-push - to the latest version 1.10.5.

This worked because [email protected] contains a commit which changed the pinned version from 10.2+ to 11+.

Most likely you have another plugin in your project which specifies com.google.android.gms:*:+, which will currently also resolve to v11, because this is currently the latest release.

Update

Since I've been encountering this problem myself, I've just created a plugin which contains a Gradle workaround for plugins containing conflicting versions of the Play Services library: cordova-android-play-services-gradle-release. You should just be able to add it to your problematic project and it should fix the build:

cordova plugin add cordova-android-play-services-gradle-release