Multiple dex files define Landroid / support / design / widget / CoordinatorLayout $ LayoutParams

I get several dex files defining an error in my project.

I use these two tags in build.gradle , and

dexOptions { preDexLibraries = false } defaultConfig { multiDexEnabled true } 

but still getting this error.

  Information:Gradle tasks [:app:assembleDebug] Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/design/widget/CoordinatorLayout$LayoutParams; Error:com.android.dex.DexException: Multiple dex files define Landroid/support/design/widget/CoordinatorLayout$LayoutParams; Error: at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661) Error: at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616) Error: at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598) Error: at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) Error: at com.android.dx.merge.DexMerger.merge(DexMerger.java:198) Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61) Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36) Error: at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) Error: at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) Error: at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) Error: at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) Error: at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'. > com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Landroid/support/design/widget/CoordinatorLayout$LayoutParams; 
+13
source share
3 answers

Upgrade the library versions to 27.1.0 to solve the isssue for me.

 compile 'com.android.support:appcompat-v7:26.1.0' compile 'com.android.support:design:26.1.0' compile 'com.android.support:appcompat-v7:26.1.0' compile 'com.android.support:mediarouter-v7:26.1.0' compile 'com.android.support:recyclerview-v7:26.1.0' compile 'com.android.support:cardview-v7:26.1.0' compile 'com.android.support:support-v13:26.1.0' compile 'com.android.support:support-v4:26.1.0' 

To:

 compile 'com.android.support:appcompat-v7:27.1.0' compile 'com.android.support:design:27.1.0' compile 'com.android.support:appcompat-v7:27.1.0' compile 'com.android.support:mediarouter-v7:27.1.0' compile 'com.android.support:recyclerview-v7:27.1.0' compile 'com.android.support:cardview-v7:27.1.0' compile 'com.android.support:support-v13:27.1.0' compile 'com.android.support:support-v4:27.1.0' 
+34
source

in the build.gradle file, enable multidex and add the multidex library as a dependency, as shown:

 android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.3' } 

By default, in new versions of the support library, when you add "multiDexEnabled = true" , its dependency is added automatically, but for some reason, if you want to support older versions of support, you must enable the dependency manually to compile it.

This will remove Multiple dex files define Landroid/support/v13/view/DragAndDropPermissionsCompat and other 16 errors along with it.

Consider the link: https://developer.android.com/studio/build/multidex for more information.

+1
source

Updating the gradle plugin (com.android.tools.build:gradle) from 3.2.0 to 3.3.2 solved the problem for me.

0
source

Source: https://habr.com/ru/post/1275622/


All Articles