多年来,我一直非常小心,不会将Google-Android依赖项引入我的Android应用程序,并且有两种方式可以保留这种隔离,withAmazon
和withGoogle
。
app
|_ main
|_ test
|_ withAmazon
|_ withGoogle
最近,我一直在尝试 Firebase Analytics ,这是一个非常Google OHA only的产品,我不相信它是在Google生态系统之外工作的(尽管有some reports确实如此)。 firebase的部分设置是应用google-services
插件。
apply plugin: 'com.google.gms.google-services'
但是,withAmazon
风格不包含google-service.json
...因为......好吧,不适合谷歌。
app
|_ main
|_ test
|_ withAmazon
|- java
|- AndroidManifest.xml
|_ withGoogle
|- java
|- AndroidManifest.xml
|- google-services.json
...但是因为Gradle plugins appear to need to have to be applied project wide是否可以仅将gms插件应用于其中一种口味?在编译Amazon风格时,上述情况下的构建失败,因为它抱怨google-services.json
不存在......这是正确的。
现在,我的解决方法是将google-services.json
移到app/
目录下。问题解决了。然而,谷歌和谷歌之间的明显鸿沟并不合适。 “纯粹的”Android操作系统正在被侵占。
慷慨接受的任何帮助。
答案 0 :(得分:2)
我通过修改我的父build.gradle文件解决了这个问题;
if (getGradle().getStartParameter().getTaskRequests().toString().contains(withGoogleFlavor)){
apply plugin: 'com.google.gms.google-services'
}
现在,插件(以及相关的Google Play服务依赖项)未添加到我的应用的亚马逊风格中。此外,google-services.json
现在可以追溯到" withGoogle"风味。
注意:withGoogle
是在其他地方定义的带有值" withGoogle"的def。
致谢:https://stackoverflow.com/a/43336869/1348379