【问题标题】:Android Studio: Error converting bytecode to dexAndroid Studio:将字节码转换为 dex 时出错
【发布时间】:2017-09-23 09:52:14
【问题描述】:

当我尝试在手机上安装我的应用程序时遇到错误。我试图清理该项目,然后再制作它,但它不起作用。当我只重建项目时,它正在工作。这是我得到的错误:

Information:Gradle tasks [:app:assembleDebug]
Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/auth/api/signin/zzc;
Error:com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/auth/api/signin/zzc;
Error:  at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
Error:  at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
Error:  at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
Error:  at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Error:  at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
Error:  at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Error:  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Error:  at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Error:  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Error:  at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/auth/api/signin/zzc;
Information:BUILD FAILED in 10s
Information:15 errors
Information:0 warnings
Information:See complete output in console

这是我的 build.gradle (Module: app) 文件:

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "my.application.path"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 2
        versionName "2.6.1"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    lintOptions { checkReleaseBuilds false }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.0', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    //noinspection GradleCompatible
    compile 'com.android.support:appcompat-v7:25.4.0'
    compile 'com.android.support:design:25.4.0'
    compile 'com.android.support:recyclerview-v7:25.4.0'
    compile 'com.sloydev:collapsingavatartoolbar:1.0.0'
    compile 'com.android.support:cardview-v7:25.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.github.bumptech.glide:glide:3.5.2'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'
    compile 'com.google.firebase:firebase-database:11.0.2'
    compile 'com.google.firebase:firebase-storage:11.0.2'
    compile 'com.google.firebase:firebase-crash:11.0.2'
    compile 'com.google.firebase:firebase-messaging:11.0.2'
    compile 'com.google.firebase:firebase-core:11.0.2'
    compile 'com.google.firebase:firebase-auth:11.0.2'
    compile "com.google.android.gms:play-services-places:11.0.2"
    compile "me.leolin:ShortcutBadger:1.1.18@aar"
    compile 'com.firebaseui:firebase-ui:1.1.1'
    compile 'com.theartofdev.edmodo:android-image-cropper:2.4.+'
    testCompile 'junit:junit:4.12'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.github.karanchuri:PermissionManager:0.1.0'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true;
    }
}
apply plugin: 'com.google.gms.google-services'

这是我的 build.gradle(项目:项目名称)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
        maven {url 'https://maven.fabric.io/public'}
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta2'
        classpath 'com.google.gms:google-services:3.1.0'
        classpath 'io.fabric.tools:gradle:1.24.2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

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

当我不得不更新 google play 服务时,它开始发生。但我不知道我应该改变什么。

【问题讨论】:

    标签: android android-studio compiler-errors android-gradle-plugin google-play-services


    【解决方案1】:

    检查引用同一 jar 的重复库,类似于 SO post 中发生的情况。

    您也可以从this post阅读:

    我认为您的问题是,无论您将图书馆链接到何处 您的主项目您在两者之间具有相同的依赖关系 您的支持库和注释。

    如果您将库项目作为应用程序的依赖项 您只需要将依赖项放在库中 依赖关闭。

    问题是你有两个 dex 文件,因为有两个文件 具有相同的名称,因为文件与您的重叠 依赖关系。

    【讨论】:

      【解决方案2】:

      在我的例子中,Java 和 Kotlin 中有两个类似的文件(例如,“SomeView.java”和“SomeView.kt”)。

      【讨论】:

        猜你喜欢
        • 2016-09-02
        • 1970-01-01
        • 2018-04-09
        • 2016-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多