Aplicación de Android en Gradle: no se puede combinar dex

Tengo un error con mi aplicación en el estudio de Android:

Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 

Yo uso Gradle y Kotlin.

 Android Studio 3.0.1. Windows 10 Pro 64. 

Investigué este tema en SO y he intentado alguna solución desde aquí , así:

  1. Limpiar y rebuild el proyecto. Sin cambios.
  2. Cambie 'comstackr' en gradle a 'implementación'. Sin cambios.
  3. Eliminar .gradle y build directorys. Sin cambios.
  4. Agregue multiDexEnabled true en defaultConfig en gradle. En este caso, tengo otro error:

      Execution failed for task ':app:transformClassesWithMultidexlistForDebug'. > java.io.IOException: Can't write [G:\work\myapp\app\build\intermediates\multi-dex\debug\componentClasses.jar] (Can't read [C:\Users\Public\.gradle\caches\transforms-1\files-1.1\support-core-utils-27.0.2.aar\e1c9881d763269b67bf59dc03d19c305\jars\classes.jar(;;;;;;**.class)] (Duplicate zip entry [classes.jar:android/support/v4/content/PermissionChecker$PermissionResult.class])) 

Mi build.gradle :

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 27 defaultConfig { multiDexEnabled true applicationId "myapp" minSdkVersion 19 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { debug { applicationIdSuffix ".dev" } staging { debuggable true applicationIdSuffix ".sta" } preproduction { applicationIdSuffix ".pre" } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } repositories { jcenter() mavenCentral() } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.android.support:appcompat-v7:27.0.2' implementation 'com.basecamp:turbolinks:1.0.7' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' // The Client SDK resides on jCenter implementation 'com.twilio:client-android:1.2.21' } 

Mi AndroidManifiesto :

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tunnll.passenger"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.twilio.client.TwilioClientService" android:exported="false" android:stopWithTask="true"/> </application> 

¿Qué me estoy perdiendo?

UPD
Parece que descubrí el punto después de que el problema ha aparecido. Fue después de agregar la configuration de Twilio. Utilicé este manual: Twilio y Android

Esto es todos los cambios que se han hecho:

  1. Agregar a build.gradle :

      implementation 'com.twilio:client-android:1.2.21' 
  2. Agregar a AndroidManifest :

      <service android:name="com.twilio.client.TwilioClientService" android:exported="false" android:stopWithTask="true"/> 
  3. Añadir a proguard-rules.pro

      # Twilio Client -keep class com.twilio.** { *; } # Apache HttpClient -dontwarn org.apache.http.** 

Eso es todo. Antes de que esto cambie, no tuve este error

Úselo en su module build.gradle in app si quiere leer un file .aar para su directory libs:

 repositories{ flatDir{ dirs 'libs' } } dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar') } 

Pero parece que su problema es multidex (significa que tiene más de 65 mil methods en su proyecto, así que use esto:

 android { defaultConfig { multiDexEnabled true } } 

y si tu minSdk <20 entonces usa esto también:

 compile 'com.android.support:multidex:1.0.1' 

¡¡¡Espero eso ayude!!!