“找不到包名称的匹配客户端”,具有构建风格和正确的包层次结构

时间:2018-05-04 07:57:41

标签: android firebase firebase-cloud-messaging google-play-services

我的构建遇到了这个奇怪的问题:我有一个带有某个应用程序ID的构建风格,我正在定义匹配它的正确软件包,我的文件夹层次结构如下所示:

+ src
++ flavor1
+++ google-services.json
++ flavor2
+++ google-services.json

google-services.json中的引用也有正确的包名,而且我仍然会收到“找不到包名称的匹配客户端”这一错误,仅适用于flavor2包,flavor1工作正常。

我已经坚持了一天以上,尝试了从清洁/重建,重新创建层次结构,清除缓存,没有任何工作。知道出了什么问题或者还有什么可以尝试吗?

1 个答案:

答案 0 :(得分:0)

Google在播放服务插件的2.0版本中包含了对flavor的支持。从此版本gradle plugin com.google.gms:google-services:2.0.0-alpha3

开始

你可以这样做

app/src/
    flavor1/google-services.json
    flavor2/google-services.json

插件版本3.0.0将在这些位置搜索json文件(考虑到你有flavor flavor1和构建类型debug):

/app/src/flavor1/google-services.json
/app/src/flavor1/debug/google-services.json
/app/src/debug/google-services.json
/app/src/debug/flavor1/google-services.json
/app/google-services.json

即使使用flavorDimensions,这对我也有用。我有免费的&在一个维度支付和Mock&在另一个方面产生刺激。我还有3个buildTypes:debug,release和staging。这就是我在FreeProd风格项目中的表现:

enter image description here

google-services.json文件的数量取决于您项目的特征,但每个Google项目至少需要一个json文件。

如果你想了解这个插件对这些json文件做什么的更多细节,这里是: https://github.com/googlesamples/google-services/issues/54#issuecomment-165824720

官方文档的链接: https://developers.google.com/android/guides/google-services-plugin

然后点击此处查看此插件的最新版本:https://bintray.com/android/android-tools/com.google.gms.google-services/view

Reference