Build problems after Cordova and Cordova-Android update

Hi there,

what I did and the cli answered is below:
(bold is mine, three dots is stuff I snipped)

npm uninstall -g cordova
npm install -g cordova

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0
cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
@ionic/app-scripts : 3.2.1
Cordova Platforms  : android 6.2.3
Ionic Framework    : ionic-angular 3.9.2

ionic cordova platform remove android
ionic cordova platform add android

Using cordova-fetch for cordova-android@~7.1.1
Adding android project...
Creating Cordova project for the Android platform:
        Path: platforms\android
        Activity: MainActivity
        Android target: android-27
Android project created with cordova-android@7.1.4
...

ionic cordova build android

...
Preparing "Install Android SDK Platform 27 (revision: 3)".
...
"Install Android SDK Platform 27 (revision: 3)" finished.
...
:app:transformDexArchiveWithDexMergerForDebug
Dex: Error converting bytecode to dex:
 FAILED
38 actionable tasks: 38 executed

Cause: com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/PermissionHelper;
    UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/PermissionHelper;

com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/PermissionHelper;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
        at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

FAILURE: Build failed with an exception.
...
cmd: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.

... and some more

So, what went wrong and how to get it to build at the updated level?

All help really appreciated!

Maybe is a Gradle problem, because in the last debug info you can notice:

Note: Some input files use or override a deprecated API.

Try to check your app Gradle and try to change “compile” into implementation.
Check this post also:

Hi,

I am not sure, if this is the right path…
Today at work I stumbled on a note that from cordova-android 6.4.0 an installed gradle is required.
The version before starting the upgrade was 6.2.3, of course there was no gradle installed; I just did and got the same error, but I am not sure what changes I need to do on my project, which dependencies no longer etc.

I am able to create an app but am not that familiar with the tool chain to manage all breaking changes. To avoid all this …inconveniences (to put it politely) my current idea is to start a new project based on the same template, install the needed plugins based on the new project - should give the right dependencies - and add the old source.

At work we have some projects that we need to upgrade soon and have avoided this for some time. The colleague who needs to do the upgrade is usually the one who has lost at something…