生成APK问题:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex

时间:2018-03-10 21:24:13

标签: android gradle android-gradle build.gradle

我在Windows 10上安装了Android Studio,每当我尝试调试我的应用时都会出现此错误:

enter image description here

这是我的项目级别 build.gradle

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
        classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3"
        classpath 'com.google.gms:google-services:3.1.1'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
        maven {
            url 'https://maven.google.com'
        }
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这是模块级 build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '26.0.3'
    defaultConfig {
        applicationId "com.dzboot.salha.client"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.home_fragment.runner.AndroidJUnitRunner"
    }
    dexOptions {
        preDexLibraries = false
    }
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
    defaultConfig {
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }
    }
}

dependencies {
    implementation('com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.6.2') {
        transitive = true
    }

    def firebaseVersion = '11.8.0'
    def playservicesVersion = '11.8.0'
    def androidSupportVersion = '27.1.0'

    implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation:0.6.2'
    implementation "com.google.firebase:firebase-auth:$firebaseVersion"
    implementation "com.google.firebase:firebase-messaging:$firebaseVersion"
    implementation 'com.github.TheBrownArrow:PermissionManager:1.0.0'
    implementation 'de.hdodenhof:circleimageview:2.2.0'
    implementation 'gun0912.ted:tedbottompicker:1.0.12'
    implementation 'com.akexorcist:googledirectionlibrary:1.0.5'
    implementation 'com.loopj.android:android-async-http:1.4.9'
    implementation 'com.github.bumptech.glide:glide:3.7.0'
    implementation "com.google.android.gms:play-services-maps:$playservicesVersion"
    implementation "com.google.android.gms:play-services-location:$playservicesVersion"
    implementation "com.google.android.gms:play-services-places:$playservicesVersion"
    implementation "com.google.android.gms:play-services-base:$playservicesVersion"
    implementation "com.google.firebase:firebase-database:$firebaseVersion"
    implementation 'com.google.code.gson:gson:2.8.1'
    implementation 'com.android.support:multidex:1.0.3'

    implementation "com.android.support:cardview-v7:$androidSupportVersion"
    implementation "com.android.support:appcompat-v7:$androidSupportVersion"
    implementation "com.android.support:design:$androidSupportVersion"
}

apply plugin: 'com.google.gms.google-services'

我尝试清理项目,使缓存无效并重新启动,也尝试运行: gradlew -q dependancies看到任何冲突,这就是我得到的:

  

配置'编译'在项目':app'已弃用。使用   '实施'代替。

     

失败:构建因异常而失败。

     
      
  • 出了什么问题:配置项目时遇到了问题':app'。

         
        

    无法通知项目评估监听器。     无法初始化类com.android.sdklib.repository.AndroidSdkHandler

      
  •   
  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获得全面的见解。

  •   
  • https://help.gradle.org

  • 获取更多帮助   
     

在1s内建立失败

我的gradle-wrapper.proprieties:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

编辑请参阅以下有关多个Java版本的评论。我确实有两个Java版本,我保留了Java 8u161并卸载了另一个,我在项目结构设置中更改了Java的位置,但我仍然遇到同样的问题。

我真的很失落,请帮助我!

1 个答案:

答案 0 :(得分:1)

感谢@shadowsheep,我解决了这个问题。我在应用级 build.gradle

中添加了此内容
dependencies {
    /.../
    implementation "android.arch.lifecycle:extensions:1.1.0"
}

在模拟器中运行应用程序运行正常,但我在尝试生成apk时遇到了很多警告和错误。

然后我不得不从同一个文件中删除它以使其工作:

buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

如果有人知道如何使其与ProGuard一起使用,请挺身而出:)