我遇到了这个问题,你能帮我吗:

Error:Error converting bytecode to dex:

原因:com.android.dex.DexException:多个dex文件定义了Lcom/google/android/gms/auth/api/signin/internal/zzf;
...

FAILURE:构建失败,出现异常。
  • 出了什么问题:
    任务“:app:transformClassesWithDexForDebug”执行失败。


  • 我的 build.glade
        packagingOptions {
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
    }
    

    }

    /* 包装选项 {
    排除“元信息/许可证”
    //如果您使用的是firebase,请在下面包含
    //排除'META-INF/LICENSE-FIREBASE.txt'
    排除“元信息/通知”
    }*/
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
    
    
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        testCompile 'junit:junit:4.12'
    
    
        compile 'com.android.support:recyclerview-v7:25.0.1'
        compile 'com.android.support:cardview-v7:25.0.1'
        compile 'com.android.support:design:25.0.1'
        //compile 'com.android.support:support-v4:25.3.1'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
    
    
        compile 'com.android.support:appcompat-v7:25.0.1'
    
        compile 'com.firebase:firebase-client-android:2.4.0'
        compile 'com.google.firebase:firebase-core:10.2.6'
        compile 'com.google.firebase:firebase-auth:10.2.6'
        compile 'com.google.firebase:firebase-database:10.2.6'
        compile 'com.google.firebase:firebase-storage:10.2.6'
        compile 'com.google.firebase:firebase-messaging:10.2.6'
        compile 'com.firebaseui:firebase-ui-database:0.6.0'
        compile 'com.firebaseui:firebase-ui-storage:0.6.0'
    
    
        compile 'com.firebaseui:firebase-ui-auth:0.6.0'
        //compile 'com.android.support:multidex:1.0.0'
    
        compile 'com.squareup.picasso:picasso:2.5.2'
        compile 'com.github.bumptech.glide:glide:3.7.0'
    
    
        compile 'com.squareup.okhttp3:okhttp:3.6.0'
    
        //Notification
    
        compile 'com.onesignal:OneSignal:[3.5.3,4.0.0)'
    
    
    
    
        compile 'com.google.android.gms:play-services-gcm:10.2.6'
    
        compile 'com.google.android.gms:play-services-location:10.2.6'
    
    
    
    }
    

    应用插件:'com.google.gms.google-services'

    最佳答案

    如果您的 minSdkVersion 设置为 21 或更高 ,您需要做的就是在您的应用级 build.gradle 文件中将 multiDexEnabled 设置为 true ,如下所示

    android {
        defaultConfig {
            ...
            minSdkVersion 21
            targetSdkVersion 25
            multiDexEnabled true
        }
        ...
    }
    

    但是,如果您的 minSdkVersion 设置为 20 或更低 ,那么您必须使用 multidex 支持库,如下所示:

    修改应用级 build.gradle 文件以启用 multidex 并将 multidex 库添加为依赖项,如下所示:
    android {
        defaultConfig {
            ...
            minSdkVersion 15
            targetSdkVersion 25
            multiDexEnabled true
        }
        ...
    }
    
    dependencies {
      compile 'com.android.support:multidex:1.0.1'
    }
    

    创建一个像这样的应用程序类:
    public class MyApplication extends MultiDexApplication {
      @Override
      protected void attachBaseContext(Context base) {
         super.attachBaseContext(base);
         MultiDex.install(this);
      }
    }
    

    在 Manifest 中添加这个应用程序类。
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="your package name">
        <application
            android:name=".MyApplication" >
            ...
        </application>
    </manifest>
    

    您还可以查看此链接:

    https://developer.android.com/studio/build/multidex.html

    关于android - 错误 :Error converting bytecode to dex: Multiple dex files define,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44455374/

    10-11 22:52
    查看更多