Firebase开发遇多dex冲突:Multiple dex files define Lcom/google/.../signin/zzc;
解决Multiple dex files define Lcom/google/android/gms/auth/api/signin/zzc;错误
这个错误的核心原因是依赖版本不兼容,尤其是你使用的com.firebaseui:firebase-ui:0.6.2和其他Firebase库版本严重不匹配,导致同一个类被多个不同版本的依赖包重复定义,最终触发Dex合并冲突。另外你混用了compile和implementation关键字(虽然不是直接原因,但统一使用更规范)。
下面是具体的修复步骤:
1. 匹配FirebaseUI与Firebase核心库版本
FirebaseUI对Firebase/Google Play Services的版本有严格的对应要求,你当前使用的Firebase版本是11.0.4,而firebase-ui:0.6.2对应的是Firebase 10.0.1,版本差异导致了重复类。你需要把FirebaseUI升级到和Firebase 11.0.4匹配的版本——com.firebaseui:firebase-ui:3.1.0(这个版本正好对应Firebase 11.0.4)。
2. 统一依赖关键字
在Gradle 3.0+版本中,compile已经被废弃,建议全部替换为implementation,保持依赖配置的一致性。
3. 修改后的Module App Gradle配置
apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultConfig { applicationId "pt.ipca.projectoaddjn" minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true multiDexEnabled = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.0' implementation 'com.android.support:design:26.1.0' implementation 'com.android.support:support-vector-drawable:26.1.0' implementation 'com.google.firebase:firebase-database:11.0.4' implementation 'com.android.support:support-v4:26.1.0' implementation 'com.google.firebase:firebase-core:11.0.4' implementation 'com.google.firebase:firebase-auth:11.0.4' implementation 'com.android.support:cardview-v7:26.1.0' implementation 'com.squareup.picasso:picasso:2.5.2' implementation 'com.android.support:percent:26.1.0' implementation 'com.android.support:recyclerview-v7:26.1.0' // 替换为匹配版本的FirebaseUI implementation 'com.firebaseui:firebase-ui:3.1.0' } apply plugin: 'com.google.gms.google-services'
4. 清理并重建项目
修改完成后,执行以下操作确保旧缓存被清除:
- 在Android Studio中点击
Build->Clean Project - 然后点击
Build->Rebuild Project
这样应该就能解决Dex重复定义的问题了。
内容的提问来源于stack exchange,提问作者Nuno Antunes
相关产品推荐
相关产品推荐

