android – La aplicación en ejecución falla con el error 'com.android.builder.dexing.DexArchiveMergerException: no se puede fusionar dex'

Estoy intentando ejecutar mi aplicación en mi teléfono, pero durante el time de build falla con el siguiente error:

 Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. 

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

Lo que intenté hasta ahora, pero fue en vano: -> Limpiar y rebuild (falla en la reconstrucción) -> Eliminar el file ./gradle y todos los files de compilation y caching del proyecto, y luego invalidar el caching

Mi proyecto gradle file:

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.1.51' repositories { jcenter() google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-beta6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { jcenter() google() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir } 

Mi aplicación Gradle file:

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' def daggerVersion = '2.11' android { compileSdkVersion 25 buildToolsVersion "26.0.2" defaultConfig { applicationId "com.connectus.connectus" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/INDEX.LIST' } } kapt { generateStubs = true } dependencies { /** * Kotlin */ compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile 'org.jetbrains.anko:anko-support-v4:0.10.1' /** * Unit testing */ testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-core:1.10.19' testCompile 'org.powermock:powermock-module-junit4:1.6.2' testCompile 'org.powermock:powermock-api-mockito:1.6.2' /** * Android views and widgets */ compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.android.support:cardview-v7:25.3.1' /** * Retrofit */ compile 'com.squareup.retrofit2:retrofit:2.+' compile 'com.squareup.retrofit2:converter-gson:2.+' compile 'com.squareup.retrofit2:adapter-rxjava:2.+' compile 'io.reactivex:rxjava:1.0.4' compile 'io.reactivex:rxandroid:0.24.0' /** * Glide */ compile 'com.github.bumptech.glide:glide:3.7.0' /** * Dagger 2 */ kapt "com.google.dagger:dagger-compiler:$daggerVersion" compile "com.google.dagger:dagger:$daggerVersion" provided 'org.glassfish:javax.annotation:10.0-b28' /** * Butterknife for view injection */ compile 'com.jakewharton:butterknife:8.8.1' kapt 'com.jakewharton:butterknife-compiler:8.8.1' /** * GSON */ compile 'com.google.code.gson:gson:2.6.2' compile 'org.powermock:powermock-api-mockito:1.6.2' /** * Facebook SDK */ compile 'com.facebook.android:facebook-login:[4,5)' /** * UI Testing */ androidTestCompile 'com.android.support:support-annotations:25.3.1' androidTestCompile 'junit:junit:4.12' testCompile 'com.google.dexmaker:dexmaker:1.2' testCompile 'com.google.dexmaker:dexmaker-mockito:1.2' androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') { exclude module: 'support-annotations' } androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2') { exclude module: 'support-annotations' exclude module: 'appcompat-v7' exclude module: 'support-v4' exclude module: 'support-v13' exclude module: 'recyclerview-v7' exclude module: 'design' } androidTestCompile('com.android.support.test:runner:0.3') { exclude module: 'support-annotations' } androidTestCompile('com.android.support.test:rules:0.3') { exclude module: 'support-annotations' } compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.android.support.constraint:constraint-layout:1.0.2' } apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' repositories { mavenCentral() } 

Estoy usando Kotlin y Android Studio 3.0.0 beta 6. ¿Cuál es el problema?

Aunque no estoy completamente seguro de la causa de esto, parece, después de hacer algunas excavaciones , que hay una versión clash entre las librerías de anotación incluidas por jetbrains en el plugin de kotlin y en otro lugar. Puede verificar esto ejecutando

gradle :app:assembleDebug --stacktrace

que da, al final,

 Caused by: com.android.dex.DexException: Multiple dex files define Lorg/intellij/lang/annotations/JdkConstants$PatternFlags; 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) ... 1 more 

Lo resolví excluyendo la biblioteca de annotations de la dependencia de kotlin. (Limpiar y rebuild podría ser necesario después de esto)

 implementation ("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version") { exclude group: 'org.jetbrains', module: 'annotations' } 

Esto funciona para mí, pero no estoy seguro de lo buena que es esta solución.

Logré solucionarlo con solo include los services básicos de juego y no los completos:

 - compile 'com.google.android.gms:play-services:11.6.0' + compile 'com.google.android.gms:play-services-base:11.6.0' 

y eliminó las dependencies de indexing en mi actividad:

 -import com.google.android.gms.appindexing.AppIndex; -import com.google.android.gms.common.api.GoogleApiClient; 

(aunque esto podría haber sido un rest de todos modos de mi actualización a la API 27).

Agrega esto

 defaultConfig { multiDexEnabled true } 

Me gusta esto:

 android { compileSdkVersion 25 buildToolsVersion "26.0.2" defaultConfig { applicationId "com.connectus.connectus" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } defaultConfig { multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/INDEX.LIST' } 

}

  • While loop en el lenguaje de progtwigción Kotlin
  • ¿Por qué el código que inicializa una propiedad de interfaz variable no se codificará en la compilation del bloque init?
  • Parámetros de tipo genérico de order superior (¿o recursivo?) En kotlin
  • Devuelve el resultado vacío en requery QueryRecyclerAdapter
  • ¿Es posible crear un tipo de function recursiva en Kotlin?
  • ViewPager en Fragment no está funcionando por segunda vez
  • Convierta la function de Scala a la function de Kotlin
  • Al utilizar tanto publishOn como subscribeOn en un flujo, no ocurre nada
  • Es var str: cadena mutable o inmutable?
  • El uso de más es igual al operador con bytes
  • ¿Cómo puedo probar AsyncTask no llamado?