微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android build.gradle从另一个文件导入flavor

我已将产品Flavors放入另一个名为other.gradle的文件中,它看起来像这样:

project.ext.myflavors =  {
 mock {
     applicationId "com.mysite.mock"
 }

}

我能够成功访问build.gradle文件中的闭包,如下所示:

myflavors()

但我得到一个错误,模拟方法没有定义.

Error:Gradle DSL method not found: 'mock()'

有没有办法只从另一个文件定义代码并将代码本身导入构建文件?或者我如何从其他文件导入风味?

解决方法:

多次访问productFlavors非常好.因此,在构建脚本包含的脚本中添加部分或全部样式将起作用.

创建一个Gradle脚本,其中包含决定应添加哪些flavor的逻辑:

if (someCondition()) {
    android {
        productFlavors {
            one {
                applicationId = 'com.example.oneapp'
            }
        }
    }
} else {
    android {
        productFlavors {
            two {
                applicationId = 'com.example.twoapp'
            }
        }
    }
}

现在,在构建脚本中包含此脚本.如果将它放在根项目的(子文件夹)下,则可以轻松地重用脚本.例如:

apply from: rootProject.file('build-scripts/flavor-picker.gradle')

请注意,您的IDE可能不会注意到flavor选择脚本或gradle.properties的更改,因此如果您对它们进行更改,则可能必须手动重新导入Gradle文件以查看正确的可用任务集.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐