背景:

我试图为我的应用程序设置谷歌分析(有4个自定义buildTypes和多个productFlavors)

当我选择有applicationId设置为com.my.app.package.name(生成google-services.json时使用的包名)的Build Variant时,它工作得很好。但是,我的其他口味有不同的应用id。

我按照官方的开发指南来设置它。

当在build variables选项卡中选择任何其他构建变量时(具有不同的applicationId(包名)),我得到的错误如下:

错误:任务执行失败 “应用程序:processAllcategoriesDebugfreeGoogleServices”。 没有为包名'com.my.app.package.name.debug'找到匹配的客户端

错误信息解释:

在上面错误消息中的任务名称中,Debugfree是我的自定义buildType, Allcategories是我的productFlavors之一。

我理解这个错误,知道包的名称与我在生成json时使用的不同,但这就是我试图解决的问题。

问题:

现在,谷歌的服务。json驻留在app文件夹中,因此我无法通过将它们放入特定于风味的源集文件夹中将它们分离出来。

问题:

My custom byildType for debugging suffixes .debug to the applicationId (package name). Is there a way I can make it work with the google-services.json which has my release applicationId (i.e. without the suffix .debug) Is there a way to have multiple product flavors configured in the same google-services.json file without using separate files and tasks to copy the required file to app folder. I know it can be done using task as mentioned in this post. Is there a simpler way to just have one file or pick right file based on gradle configuration? I see the package_name field in google-services.json has the package name com.my.app.package.name. Can I add multiple package names manually to work for all build variants? If yes, how to do that? Could not find any instructions in documentations.


当前回答

1.验证包名称和应用程序ID应该相同

2.验证谷歌服务。Json包名,可在应用程序文件夹

其他回答

我来自react native,但我认为这也适用于这个问题。指定。

在文件android/app/build中。gradle搜索applicationId(在android中,defaultConfig)

确保这个值和这个一样

客户端[0]client_info.android_client_info.package_name

作为google-services.json中的值。

去谷歌服务。json文件和在客户端部分检查包名称,并与App包名称进行比较,如果它们是不同的,然后根据您的App包名称更改客户端包名称,它为我工作,祝我好运。

谷歌服务。Json文件-> "package_name": "com.example.application.tracker"

应用程序包名称->包"com.example.application.tracker";

就我而言,我忘记了谷歌服务。Json在应用程序根目录,这是不同的口味。它在默认情况下使用,而不是使用存储在flavor文件夹中的json。这个混乱的插件,因为包名不匹配,它失败了。

我教的智慧是,检查所有的谷歌服务。Json在你的项目结构中,当这个问题发生时。

发现了这个:

谷歌服务。Json文件一般放置在app/ 目录,但作为版本2.0.0-alpha3的插件支持 为构建类型添加,这将创建以下目录 结构有效: 应用程序/ src / 主要/ google-services.json 下dogfood / google-services.json mytype1 / google-services.json ...

源2

检查google-services中是否存在client_id和package_name。Json有一个正确的值根据你的包名。

您应该将上述文件添加到flavors目录中,并在client_id和package_name字段中添加相应的包名。