配置多维度产品风味的Android项目时缺失google-services.json
解决多维度产品风味下Google服务配置缺失问题
我来帮你搞定这个多风味项目里google-services.json的配置问题,其实Google服务插件本身就支持按产品风味来加载对应的配置文件,你只需要按照正确的目录结构来放置文件就行,具体步骤如下:
1. 按风味组织google-services.json文件
针对你vendor维度下的两个风味,分别把对应的配置文件放在各自的风味目录下:
- 将development环境的
google-services.json放到app/src/development/目录中 - 将production环境的
google-services.json放到app/src/production/目录中
因为你的项目是双维度组合(vendor × type),Google服务插件会自动根据vendor维度的风味来匹配配置文件——比如developmentFree、developmentPaid这两个变体都会自动使用src/development/下的json文件,productionFree、productionPaid则会用src/production/下的文件,不需要给每个组合变体单独配置。
2. 确认Google服务插件的正确应用
确保你的app模块build.gradle已经正确引入了Google服务插件:
- 如果是旧版Gradle(AGP 7.0以下),在文件末尾添加:
apply plugin: 'com.google.gms.google-services' - 如果是新版AGP(7.0+),在plugins块中声明:
plugins { id 'com.android.application' id 'com.google.gms.google-services' }
3. 避坑注意事项
- 不要在
src/main/目录下放置google-services.json,否则会覆盖风味特定的配置,导致插件无法正确识别不同环境的文件 - 确保每个风味对应的json文件是从Firebase控制台正确下载的——development和production建议对应两个独立的Firebase项目,避免环境混淆
- 如果还是出现文件缺失的报错,先执行
./gradlew clean清理项目缓存,再重新构建,缓存问题有时候会导致插件识别不到新添加的文件
给你一个清晰的目录结构示例:
app/ ├── src/ │ ├── development/ │ │ └── google-services.json │ ├── production/ │ │ └── google-services.json │ ├── free/ │ ├── paid/ │ └── main/ └── build.gradle
内容的提问来源于stack exchange,提问作者Rui Rodrigues
相关产品推荐
相关产品推荐

