Dex错误在Android Studio 3.0 Beta4上

Ank*_*434 51 android dex build.gradle android-gradle-plugin

Error:java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.android.dex.DexException: Multiple dex files define Lcom/google/zxing/integration/android/IntentResult;
Run Code Online (Sandbox Code Playgroud)

小智 54

我对Android Studio 3.0 beta 4也有同样的问题.我找到了一个解决方案.

1.Build菜单中,按Clean Project按钮.

清洁项目

2.任务完成后,按菜单中的Rebuild Project按钮Build.

在此输入图像描述

  • 在Android Studio 3.0 RC2中无效 (6认同)
  • 使用Android Studio 3.0为我工作 (3认同)
  • 在Android Studio 3.0上没有为我工作 (3认同)
  • 这适用于Android Studio 3.1 Canary.但是,每当我对gradle进行更改时,似乎我必须这样做.这个有很多术语修复吗? (2认同)

Pro*_*igy 28

对于Android Studio 3.0,我所做的就是将其添加到我的gradle中:

multiDexEnabled true
Run Code Online (Sandbox Code Playgroud)

它奏效了!

android {
    compileSdkVersion 25
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.xx.xxx"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 9
        versionName "1.0"
        multiDexEnabled true //Add this
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,这并没有解决问题...我仍然继续努力解决它.. (7认同)

ADe*_*Dev 19

所以我通过执行以下操作解决了这个问题:

  • 删除./gradle项目中的文件夹
  • 删除所有构建文件夹和gradle缓存.我运行了以下命令:

怎么样 ?

 cd ~/[your project root folder] && find . -name build -exec rm -rf {} \; && rm -rf $HOME/.gradle/caches/
Run Code Online (Sandbox Code Playgroud)

假设您的gradle配置文件位于该$HOME/.gradle文件夹中.

  • 在Android Studio中,转到File > Invalidate caches / Restart...并使缓存无效并重新启动它.

  • 在AS 3.0 Beta 7上同样的问题,不幸的是,这仍然不适合我的情况. (20认同)
  • 尝试了以上所有解决方案,但不适用于AS 3.0 beta 7.请帮助 (3认同)
  • 删除.gradle文件夹修复了我的问题.感谢帮助! (2认同)

Igo*_*sky 9

您应该能够通过使用gradle检查依赖项并查找重复项来查明此错误的原因: ./gradlew -q app:dependencies

在我的情况下,在构建时发生以下错误:

Duplicate zip entry [httpcore-4.4.1.jar
Run Code Online (Sandbox Code Playgroud)

这是通过我的build.gradle:

implementation ('me.dlkanth:stetho-volley:1.0') {
    exclude group: 'org.apache.httpcomponents'
}
Run Code Online (Sandbox Code Playgroud)


Opr*_*day 7

如果你的minSdkVersion是21或更高

   android {
        defaultConfig {
           multiDexEnabled true
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果你的minSdkVersion是20或更低

1)您必须在依赖项中添加以下库

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

2)创建一个java类,然后从Application扩展它并覆盖attachBaseContext方法.

 public class MyApplication extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

3)在应用程序标记中提及清单中创建的类.

    <application
        android:name=".MyApplication"
.
.
.
    </application>
Run Code Online (Sandbox Code Playgroud)


Wil*_*lls 6

检查您的依赖项以获取最新版本,通常它与您的任何依赖项的版本不一致.

1.Build> Clean Project 2.重建你的项目

检查详细日志以查找导致合并问题的依赖项并更新相同内容.对每个依赖项重复相同的操作.