Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle上的Android应用程序:无法合并dex_Android_Android Gradle Plugin_Kotlin_Twilio - Fatal编程技术网

Gradle上的Android应用程序:无法合并dex

Gradle上的Android应用程序:无法合并dex,android,android-gradle-plugin,kotlin,twilio,Android,Android Gradle Plugin,Kotlin,Twilio,我在Android studio中的应用程序出现错误: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 我用格拉德尔和科特林 Android Studio 3.0.1. Windows 10 Pro 64.

我在Android studio中的应用程序出现错误:

Execution failed for task 
':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
我用格拉德尔和科特林

Android Studio 3.0.1.  
Windows 10 Pro 64. 
我对这个主题进行了研究,并尝试了一些解决方案,比如:

  • 清理和重建项目。没有变化
  • 将渐变中的“编译”更改为“实现”。没有变化
  • 删除
    .gradle
    build
    目录。没有变化
  • 在gradle中的
    defaultConfig
    中添加
    multiDexEnabled true
    。在这种情况下,我有另一个错误:

     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]))
    
  • 我的身材。格拉德尔

    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'
    }
    
    <?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>
    
    我的AndroidManifest

    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'
    }
    
    <?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>
    
  • 添加到AndroidManifest:

      <service android:name="com.twilio.client.TwilioClientService" 
                   android:exported="false" android:stopWithTask="true"/>
    

  • 就这些。在进行此更改之前,我没有此错误

    如果要读取
    .aar
    文件,请在应用程序模块中的
    build.gradle
    中使用此错误 对于您的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'
    

    希望有帮助!!!

    你在libs文件夹下有什么吗?使缓存无效/重新启动?@global\u warning,没有,似乎我在项目中没有libs目录structure@AswinPAshok,尝试重新启动,没有结果:(我认为您有冲突的依赖项。您已经在Gradle中包含了
    com.android.support:appcompat-v7:27.0.2
    ,但是turbolinks库是。因此,请尝试在没有turbolinks库的情况下编译。仍然不确定这是您出现问题的原因。请阅读以避免依赖项冲突。我已经添加了
    multiDexEnabled true
    )e> 编译'com.android.support:multidex:1.0.1',但它没有帮助,我看到了第一个错误:
    任务执行失败:app:transformDexArchiveWithExternalLibsDexMergerForDebug.>com.android.builder.dexing.DexArchiveMergerException:无法合并dex
    ,但很抱歉,我不了解.aar文件,似乎我没有项目结构中的任何.aar文件都可以执行此操作。转到主目录“C:\Users\your user\.gradle\并删除整个缓存文件夹。转到项目文件夹并删除.gradle文件夹。然后打开Android Studio并尝试同步。我完成了所有操作,Android Studio成功同步,但当我运行项目时,我看到了相同的错误。似乎我找到了出现此问题的地方。我已编辑了帖子