是否可以从AndroidManifest.xml访问BuildConfig值?

在我的build.gradle文件中,我有:

defaultConfig {
    applicationId "com.compagny.product"
    minSdkVersion 16
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"

    // Facebook app id
    buildConfigField "long", "FACEBOOK_APP_ID", FACEBOOK_APP_ID
}
FACEBOOK_APP_ID在我的gradle.properties文件中定义:
# Facebook identifier (app ID)
FACEBOOK_APP_ID=XXXXXXXXXX

要在我的应用程序中使用Facebook connect,我必须将此行添加到我的AndroidManifest.xml中:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/applicationId"/>

我想用gradle中定义的BuildConfig字段@string/applicationId替换FACEBOOK_APP_ID,如下所示:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="FACEBOOK_APP_ID"/>

使用BuildConfig可以吗?如果没有,我该如何实现?

最佳答案

代替

buildConfigField "long", "FACEBOOK_APP_ID", FACEBOOK_APP_ID


resValue "string", "FACEBOOK_APP_ID", FACEBOOK_APP_ID

然后rebuild your project(Android Studio->构建->重建项目)。

在项目构建过程中,这两个命令都生成生成的值-第一种情况由Java常量组成,第二种情况由Android资源组成-但是第二种方法将生成string资源值,可以使用@string/FACEBOOK_APP_ID语法对其进行访问。这意味着它既可以在 list 中也可以在代码中使用。

关于android - 如何在AndroidManifest.xml文件中访问BuildConfig值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28954071/

10-10 07:05