android - 针对特定风格禁用 Google 服务 Gradle 插件

标签 android gradle-plugin google-play-services

使用 Google 服务需要使用此 Gradle 插件:

apply plugin: 'com.google.gms.google-services'

This thread在 Gradle 论坛上让我得出结论,您不能有选择地启用或禁用插件,这意味着这不是一个选项。我已经尝试了一些由旧线程提供的解决方案,涉及围绕 apply plugin 语句的条件,但它们现在都不起作用。

插件本身由 Google 生成并放置在项目目录中的 google-services.json 配置。我知道您可以通过 multiple google-services.json files 为每种口味设置不同的配置。 ,但是对于我们明确希望使用 Google 服务的构建风格(例如,针对未安装 Play 服务的目标设备),我们打算做什么?空白文件或虚拟 JSON 文件不起作用,因为插件将拒绝接受它。

所以我能想到的唯一解决方案是每次我想测试/构建我的口味时手动禁用插件(注释掉该行)。肯定有更好的方法来控制插件的工作方式吗?

最佳答案

我终于得到了一个可以工作的版本。使用 gradle 4.6、构建工具 3.0.1、google-services 插件 3.1.1 进行测试

apply plugin: 'com.google.gms.google-services'

android.applicationVariants.all { variant ->
    if (variant.name == 'someVariantNameYouDontwantFirebase') {
        project.tasks.getByName('process' + variant.name.capitalize() + 'GoogleServices').enabled = false
    }
}

关于android - 针对特定风格禁用 Google 服务 Gradle 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418357/

相关文章:

android - 处理 Google Play 服务更新消息

android - OSMDroid:当用户点击 map 时添加标记

android - 如何在android中隐藏actionbar show和hide的动画?

intellij-idea - 如何在 IDEA 中从 Gradle 设置 checkstyle 配置

gradle - Gradle:使用一个任务禁用另一个任务

android - 我们可以在 PlayStore 付款之前在付费应用上安装时显示协议(protocol)弹出窗口吗

android - Play 商店多久更新一次缓存

java - 安卓语音识别API

java - Android热点与客户端之间的socket连接

android - 原始 kapt 已弃用