【发布时间】:2014-05-01 12:40:06
【问题描述】:
我正在使用 Gradle 构建我的 Android 应用程序。我正在尝试根据构建类型(发布或调试)使用一些标志。
我的 Gradle 文件如下所示:
android {
buildTypes {
debug {
buildConfigField 'boolean', 'PREPROD', 'true'
buildConfigField 'boolean', 'STAGING', 'false'
}
release {
buildConfigField 'boolean', 'PREPROD', 'false'
buildConfigField 'boolean', 'STAGING', 'false'
}
}
}
如果我尝试调用BuildConfig.PREPROD 或BuildConfig.STAGING,我会收到“无法解析符号”错误。
Gradle 同步成功,不知道是不是忘记了一些步骤才能使用这个功能?
生成的BuildConfig.java文件如下(在build/source/buildConfig/debug/com.example.myapp中):
package com.example.myapp;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String PACKAGE_NAME = "com.example.myapp";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 400;
public static final String VERSION_NAME = "";
}
【问题讨论】:
-
您能否检查是否创建了正确的 BuildConfig 类。它位于
build/source/buildconfig/debug/... -
我将生成的
BuildConfig.java添加到我的问题中。 -
您使用的是什么版本的插件?使用 0.9.1 我看不到这个(两个布尔值都出现在课堂上)。
-
您不必同步(尽管 Studio 会要求您这样做,因为它不知道您是否更改了模型),但是您需要构建,因为生成了 BuildConfig 类在构建期间基于 build.gradle 文件中的内容。
-
嗨,我通过配置设置在应用程序中管理两种风格,像你一样,我正在尝试创建一些配置变量,但风格不同。我尝试了您的方式,但在 flavor/BuildConfig.java 中没有看到任何更新,因此即使在编译时也无法访问变量。任何建议!
标签: android gradle buildconfig