Gradle构建生成的变量而不是字符串值

Seb*_*n M 2 android gradle

我将此代码添加到我的build.gradle模块:android {}部分中的app.

 buildTypes.each 
    it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', "f4a8ad01f485a8276a6dbc4d364b"
}
Run Code Online (Sandbox Code Playgroud)

但它造成了错误

错误:(14,57)错误:找不到符号变量f4a8ad01f485a8276a6dbc4d364b

"..."内部未生成OPEN_WEATHER_API_KEY值

public final class BuildConfig {
     public static final boolean DEBUG = Boolean.parseBoolean("true");
     public static final String APPLICATION_ID ="com.example.weatherforecast";
     public static final String BUILD_TYPE = "debug";
     public static final String FLAVOR = "";
     public static final int VERSION_CODE = 1;
     public static final String VERSION_NAME = "1.0";
     // Fields from build type: debug
     public static final String OPEN_WEATHER_MAP_API_KEY = f4a8ad01f485a8276a6dbc4d364b;
}
Run Code Online (Sandbox Code Playgroud)

在类FetchWeatherTask.java中,我有这行代码,并没有显示任何错误.

private final String APP_ID = BuildConfig.OPEN_WEATHER_MAP_API_KEY;
Run Code Online (Sandbox Code Playgroud)

为什么在BuildConfig.java OPEN_WEATHER_API_KEY价值中它被生成为变量而不是String值?

Com*_*are 10

你需要引用它:

it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', '"f4a8ad01f485a8276a6dbc4d364b"'
Run Code Online (Sandbox Code Playgroud)