Android Studio运行项目报错:Program type already present重复类问题
解决Android Studio中「Program type already present」重复类报错
问题根源
你碰到的这个错误:
Program type already present: com.google.android.gms.common.api.internal.zzbr Message{kind=ERROR, text=Program type already present: com.google.android.gms.common.api.internal.zzbr, sources=[Unknown source file], tool name=Optional.of(D8)}
本质是Firebase相关依赖版本不匹配导致的重复类冲突。你使用的firebase-ui-database:4.0.0和基础Firebase库(firebase-database/core/auth:12.0.1)版本不兼容,Firebase UI对底层Firebase服务有严格的版本对应要求,版本错位会导致同一个gms类被多次引入。
修复步骤
只需要统一Firebase相关依赖的版本,让Firebase UI和基础Firebase库版本匹配即可。根据Firebase UI 4.0.0的适配要求,它对应的基础Firebase库版本应为15.0.0系列。修改你的app/build.gradle代码如下:
apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.example.reayankarma.classattendance" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } 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:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.0' implementation 'com.android.support:support-v4:27.1.1' implementation 'com.android.support:design:27.1.1' // 升级基础Firebase库版本,匹配Firebase UI 4.0.0 implementation 'com.google.firebase:firebase-database:15.0.0' implementation 'com.google.firebase:firebase-core:15.0.0' implementation 'com.google.firebase:firebase-auth:15.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.firebaseui:firebase-ui-database:4.0.0' } apply plugin: 'com.google.gms.google-services'
后续操作
修改完成后,记得:
- 点击顶部菜单栏的
File -> Sync Project with Gradle Files同步项目配置 - 执行
Build -> Clean Project清理旧构建缓存,再执行Build -> Rebuild Project重新构建项目
这样就能解决重复类的报错问题了。
内容的提问来源于stack exchange,提问作者Sujan
相关产品推荐
相关产品推荐

