android - 在 Gradle 中,是否可以基于其他构建配置字段创建 bool 构建配置字段?

标签 android android-gradle-plugin

在 Gradle 中,如何基于其他构建配置字段创建 bool 构建配置字段?

例如:

buildConfigField BOOLEAN, TEST_A, "false"
buildConfigField BOOLEAN, TEST_B, "false"
buildConfigField BOOLEAN, TEST_C, TEST_A && TEST_B

最佳答案

这段代码,写在你的 android.defaultConfig block 中,正是这样做的:

  buildConfigField("boolean", "TEST_A", "false");
  buildConfigField("boolean", "TEST_B", "false");
  buildConfigField("boolean", "TEST_C", "TEST_A && TEST_B");

这会在您的 BuildConfig.java 中生成以下行:

  public static final boolean TEST_A = false;
  public static final boolean TEST_B = false;
  public static final boolean TEST_C = TEST_A && TEST_B;

以这种方式声明构建配置值时需要注意一件有趣的事情,如果您查看 BuildConfig.java 的结构,您可以看到在特定构建类型中声明的字段(例如 android.buildTypes.debug) 出现在默认配置中声明的字段之前。

因此在提供的示例中,如果您希望TEST_C 依赖于实际构建类型,您需要声明TEST_ATEST_B在构建类型级别,而不是在默认级别。

关于android - 在 Gradle 中,是否可以基于其他构建配置字段创建 bool 构建配置字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44161476/

相关文章:

android - 在 Android 应用程序中集成 Facebook 和 Twitter 提要

java - 如何在android中使用实际的HttpURLConnection进行单元测试?

android - 如何抑制 "UseSparseArrays"的语句?

Android 更新导致错误 : Error:java. nio.file.AccessDeniedException :/home/path/. android/build-cache.lock

android - 可以设置debug/AndroidManifest.xml

android - 我的 sqlite 数据库上的 NullpointerException 和 getWritable() 错误

android - '错误 : Failed to resolve: com. android.support :appcompat-v7:29. 0.1'

android - 如何使用 Android Gradle 插件 3.0.0 将所有 flavor 变体发布到 Maven?

android - 无法打开调试器端口 : java.net.SocketException “Socket closed”

带有 kotlin 0.12.213 的 AndroidStudio ExternalSystemException