【问题标题】:Process resources for android gradle production Flavorsandroid gradle production Flavours的进程资源
【发布时间】:2014-08-12 14:54:20
【问题描述】:

我正在寻找如何加载每种产品风味的属性的方法。

我现在有:

productFlavors {
    flavor1 {
        println 'Flavor 1'
        loadProperties('flavor1.properties')
    }

    flavor2 {
        println 'Flavor 2'
        loadProperties('flavor2.properties')
    }

我正在使用该属性在构建之前过滤/处理一些资源。

如果我为一种风格配置我的构建,并通过 Android Studio 运行它 - 我会发现执行了两种风格并且控制台中有两个 println:

Flavor 1
Flavor 2

是否有可能以某种方式在每个构建中找到有效的产品风味? 诸如获取活跃(或当前)产品风味并访问那里的所有属性之类的东西? 或者甚至找到一种方法来处理不同风格的资源?

或者可以在Flovors下定义一些属性并在其他地方重新使用它?

【问题讨论】:

  • stackoverflow.com/questions/22506290/…。您现在看到的行为发生是因为 Gradle 在配置阶段执行了构建文件该部分中的所有内容;它不会选择性地只执行给定风味的代码。不过,我怀疑您正在尝试做一些不必要的复杂事情,并且将复杂的逻辑放在构建文件中可能不是可行的方法。如果您在问题中添加更多关于您想要什么的详细信息,您可能会得到更简单的答案。
  • 这对我的任务来说过于复杂了。

标签: android gradle android-studio android-gradle-plugin


【解决方案1】:

找到了获取当前构建风格的方法:

android.applicationVariants.all{ variant ->
    variant.processResources.doFirst {
        println '' + project.getName() + ', flavorName: ' + flavorName
        //Processing my resources there
    } 
}

【讨论】:

  • android.applicationVariants 无效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 2013-10-23
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
相关资源
最近更新 更多