Android 在更新到com.google.gms:googleservices:3.0.0后获取gradle异常
昨天,我将我的google services gradle插件更新为:Android 在更新到com.google.gms:googleservices:3.0.0后获取gradle异常,android,firebase,build.gradle,android-productflavors,android-build-type,Android,Firebase,Build.gradle,Android Productflavors,Android Build Type,昨天,我将我的google services gradle插件更新为: dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.google.gms:google-services:3.0.0' } 在此之后,我的devDebugflavor构建中出现以下错误: Error:org.gradle.api.GradleException: No match
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath 'com.google.gms:google-services:3.0.0'
}
在此之后,我的devDebug
flavor构建中出现以下错误:
Error:org.gradle.api.GradleException: No matching client found for package name 'com.example.android.dev'
以下是我的应用程序级别build.gradle
文件的相关部分:
defaultConfig {
applicationId 'com.example.android'
multiDexEnabled true
minSdkVersion 16
targetSdkVersion 24
versionCode 47
versionName "1.3.2"
signingConfig signingConfigs.myConfig
renderscriptTargetApi 24
renderscriptSupportModeEnabled true
}
buildTypes {
debug {
applicationIdSuffix = ".dev"
resValue "string", "app_name", "example-debug"
}
release {
minifyEnabled false
shrinkResources false
resValue "string", "app_name", "example"
signingConfig signingConfigs.myConfig
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
dev {
// dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
// to pre-dex each module and produce an APK that can be tested on
// Android Lollipop without time consuming dex merging processes.
minSdkVersion 21
}
prod {
// The actual minSdkVersion for the application.
minSdkVersion 16
}
}
此错误不会出现在我的
prodRelease
产品版本中。如何解决此问题?在控制台上重新注册密钥。开发人员在调试生成类型中使用此软件包:
debug {
applicationIdSuffix = ".dev"
}
此消息
找不到与包名“com.example.android.dev”匹配的客户端
表示您的google services.json
不包含此包
遵循以下步骤:
- 转到Firebase控制台
- 添加另一个android应用程序并注册此软件包
- 再次导出
googleservices.json
- 终于解决了这个问题
诀窍是将另一个应用程序添加到
Firebase
控制台,其中包含调试包名称和调试SHA1
指纹
这样做实际上会创建两个应用程序,但从任何应用程序下载的
google services.json
文件都包含这两个应用程序的信息。调试版本的应用程序ID与生产版本的应用程序ID不同。在Firebase控制台中添加一个具有该应用程序ID的Android应用程序,并获得一个新的配置JSON。@EugenPechanec如果我使用调试构建应用程序ID注册,它是否可以跨所有构建类型和风格工作?google-services.JSON将在下载时包含控制台中的所有信息,所以是。@EugenPechanec只是为了澄清,现在,我的应用程序是用包名com.example.android
注册的,我的调试版本有包名com.example.android.dev
。所以我应该在Firebase控制台中用调试构建包的名称注册我的应用程序,对吗?这意味着什么?Amit Tiwari在一分钟前澄清了我的帖子细节。