Android Studio中的构建配置出错

时间:2018-01-01 05:38:33

标签: android android-studio gradle build.gradle

我在Android Studio中运行应用。以下是代码:

的strings.xml

<resources>
  <string name="google_nearby_api_key">XXXXXXXXXXXXXXXXXXXXXXXX</string>
</resources>

清单文件

<application
    <meta-data
        android:name="com.google.android.nearby.messages.API_KEY"
        android:value="@string/google_nearby_api_key"/>
</application>

的build.gradle

def filesAuthorityValue = applicationId + ".files"
manifestPlaceholders = [filesAuthority: filesAuthorityValue]
buildConfigField "String", "FILES_AUTORITY", "\"${filesAuthorityValue}\""
resValue "string", "google_nearby_api_key", getLocalProperties().getProperty("google_nearby_api_key")

我收到错误:

Error:(35, 0) Build Config field cannot have a null parameter

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我在我的机器上检查过这对我有用

local.properties

GOOGLE_NEARBY_API_KEY="XXXXXXXXXX"

的build.gradle

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
resValue "string", "google_nearby_api_key", properties.getProperty('GOOGLE_NEARBY_API_KEY')

您将在以下字符中找到生成的文件:

app/build/generated/res/resValues/{build-type}/values/generated.xml

现在,您可以将应用中的字符串用作@string/google_nearby_api_key

此外,当我从local.properties删除密钥时,我收到同样的错误:

Error:(17, 1) A problem occurred evaluating project ':app'.
> Build Config field cannot have a null parameter

所以,你可能没有local.properties中的密钥。

您似乎也在strings.xml资源文件中手动添加了字符串,如果要隐藏API密钥,则不应执行此操作。通过gradle版本(上述方法)注入它。