Приложение Android на Gradle: невозможно слить dex

У меня есть ошибка с моим приложением в студии Android:

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

Я использую Gradle и Kotlin.

 Android Studio 3.0.1. Windows 10 Pro 64. 

Я исследую эту тему на SO, и я пробовал некоторое решение отсюда , например:

  1. Очистите и перестройте проект. Без изменений.
  2. Измените 'compile' в градиенте на 'реализацию'. Без изменений.
  3. Удалите .gradle и build директории. Без изменений.
  4. Добавьте multiDexEnabled true в defaultConfig в градиенте. В этом случае у меня есть еще одна ошибка:

      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])) 

My 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' } 

Мой AndroidManifest :

 <?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> 

Что мне не хватает?

UPD
Кажется, я понял, что проблема возникла. Это было после добавления конфигурации Twilio. Я использовал это руководство: Twilio и Android

Это все изменения, которые были сделаны:

  1. Добавить в build.gradle :

      implementation 'com.twilio:client-android:1.2.21' 
  2. Добавить в AndroidManifest :

      <service android:name="com.twilio.client.TwilioClientService" android:exported="false" android:stopWithTask="true"/> 
  3. Добавить в proguard-rules.pro

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

Это все. До этого изменения у меня не было этой ошибки

    Используйте это в своем build.gradle в приложении Module, если вы хотите прочитать файл .aar для вашего каталога libs:

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

    Но кажется, что ваша проблема – multidex (означает, что у вас есть более 65K методов в вашем проекте, поэтому используйте это:

     android { defaultConfig { multiDexEnabled true } } 

    и если ваш minSdk <20, то также используйте это:

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

    Надеюсь, поможет!!!