在 android studio 中构建 APK 时出现“多个 dex 文件定义”错误

Posted

技术标签:

【中文标题】在 android studio 中构建 APK 时出现“多个 dex 文件定义”错误【英文标题】:"Multiple dex files define" error when building APK in android studio 【发布时间】:2017-05-10 11:02:56 【问题描述】:

这是我的应用程序 gradle 文件。我得到的确切错误如下

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.>com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/github/barteksc/pdfviewer/listener/OnPageChangeListener;

build.gradle:

apply plugin: 'com.android.application'

android 
    compileSdkVersion 24
    buildToolsVersion "25.0.0"
    defaultConfig 
        applicationId "com.daniel.haughton93.dunnesstoresoffers"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    
    productFlavors 


dependencies 

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
        exclude group: 'com.android.support',
        module: 'support-annotations'
    )
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
    compile files('src/main/java/com/daniel/haughton93/dunnesstoresoffers/jsoup-1.10.1.jar')
    compile 'com.google.android.gms:play-services-appindexing:8.4.0'
    compile 'com.github.barteksc:android-pdf-viewer:2.3.0'

【问题讨论】:

【参考方案1】:

这个问题是由于 android-pdf-viewer 的依赖,所以尝试下面的步骤可能会得到解决。

    从项目结构中删除所有构建文件夹。 MyProject 文件夹 -> build -> intermediate -> dex-cache -> cache.xml,并删除了所有 support-v4.jar 和 android-pdf-viewer.jar 项。 清理项目并重试

【讨论】:

【参考方案2】:

我建议您真正取出所有不需要的 id 和引用,然后创建一个 Clean Project,然后重新构建。

如果上述方法不起作用,则像这样修改 build.gradle(Modude:app):

android 
    defaultConfig 
        ...
        minSdkVersion 21 
        targetSdkVersion 25
        multiDexEnabled true <-- the line that matters
    
    ...

希望对你有帮助!!!

【讨论】:

以上是关于在 android studio 中构建 APK 时出现“多个 dex 文件定义”错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在Android Studio中构建Release APK

如何使用 Android Studio 在 Flutter 中构建 .apk 和 .ipa?

在 android studio 中构建 APK 时出现“多个 dex 文件定义”错误

在android studio中构建apk时找不到Aapt_rules.txt

Chromium - 在 Android Studio 中构建 Chome_public_apk 时出错

如何从 Android Studio 为 Flutter 构建签名的 apk