Android集成Firebase Database遇processDebugGoogleServices执行失败错误
解决Firebase Database集成时的版本冲突构建错误
你的构建错误核心原因是Google服务相关依赖版本不统一,同时google-services插件的声明方式也有问题,下面是具体的修复步骤:
1. 统一所有Google服务组件的版本
错误提示里明确提到版本冲突,因为你同时使用了两个不同版本的Google服务依赖:
com.google.firebase:firebase-database:11.8.0com.google.gms:play-services-maps:12.0.1
Google要求所有Firebase和Google Play服务的依赖必须使用相同的主版本号,所以我们把它们统一到同一个版本(比如和你已用的12.0.1保持一致)。
2. 修正google-services插件的配置方式
com.google.gms:google-services是构建插件,不应该放在app模块的dependencies块里,正确的做法是在项目根目录的build.gradle中声明它的classpath,然后在app模块的build.gradle末尾应用插件。
修改后的app模块build.gradle代码:
apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.example.lukasz.ogloszenia" minSdkVersion 14 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' } } compileOptions { targetCompatibility 1.8 sourceCompatibility 1.8 } } 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' // 统一版本为12.0.1,和play-services-maps保持一致 implementation 'com.google.firebase:firebase-database:12.0.1' 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.google.android.gms:play-services-maps:12.0.1' } // 插件放在这里应用,不要放在dependencies里 apply plugin: 'com.google.gms.google-services'
项目根目录build.gradle需要添加的配置:
在根目录的build.gradle的buildscript块中添加google-services的classpath:
buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' // 保持你当前的gradle版本即可 // 添加这一行 classpath 'com.google.gms:google-services:4.0.1' } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
完成以上修改后,重新同步项目并构建,应该就能解决版本冲突的问题了。
内容的提问来源于stack exchange,提问作者Afams
相关产品推荐
相关产品推荐

