我在Android Studio中运行应用。以下是代码:
<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>
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
有人可以帮忙吗?
答案 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
版本(上述方法)注入它。