【问题标题】:All Gradle flavors description always return last value所有 Gradle 风味描述始终返回最后一个值
【发布时间】:2016-01-08 06:05:39
【问题描述】:

像下面的成绩脚本设置:

productFlavors {
   A { description "A"}
   B { description "B" }
   C { description "C" }
    }

productFlavors.all { flavor ->
        println name
        println description
    }

注销是:

A 
C
B
C
C
C

我怎么了?

【问题讨论】:

  • 也许你应该使用flavor.name, flavor.description
  • flavor.name 可以通过编译,但 flavor.description 不能。那么,描述什么呢? [构建类型 + 产品风格 = 构建变体]
  • 好像productFlavor 类没有description 字段
  • 好点。我知道问题的原因。总是难题是“描述”不是我的自定义定义属性。我的第一印象是它是内联属性,就像“名称”属性一样。您可以在 productFlavors 块中单击“d”第一个字母时使用智能提示来查看它。

标签: android gradle android-build-flavors


【解决方案1】:

如果您打算在代码中的某处使用描述,最好添加BuildConfigField。你可以这样做:

productFlavors {
   A { 
     buildConfigField 'String', 'DESCRIPTION', '"A"'
   }
   B { 
     buildConfigField 'String', 'DESCRIPTION', '"B"' 
   }
   C { 
     buildConfigField 'String', 'DESCRIPTION', '"C"'
   }
}

这些可以在你的java代码中访问如下:

String desc = BuildConfig.DESCRIPTION;

【讨论】:

  • 谢谢。是的,你的评论很好。对我来说,我想知道如何在 build.gradle 中为不同的 productFlavors 使用“description”属性?你知道,'name' 字段可以打印正确的值,但是 'description'。
  • 还没有尝试过,但您可以尝试打印“BuildConfig.DESCRIPTION”并查看它在那里工作吗?
  • 是的,它有效。 “描述”是指项目定义:/** * 返回此项目的描述。 * * @return 描述。可能返回 null。 */ String getDescription();
猜你喜欢
  • 1970-01-01
  • 2019-09-10
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多