使用清单上的gradle属性设置android:value

Mag*_*nas 4 android facebook gradle

我在我的gradle属性上有我的facebook应用程序ID:

FACEBOOK_APPLICATION_ID="XXXXXXXXXXXXXXX"
Run Code Online (Sandbox Code Playgroud)

我在defaultConfig中设置:

manifestPlaceholders = [facebookAppId: FACEBOOK_APPLICATION_ID]
Run Code Online (Sandbox Code Playgroud)

然后,我想在我的清单中使用它:

<meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="${facebookAppId}" />
Run Code Online (Sandbox Code Playgroud)

但它不起作用.唯一可行的方法是在字符串中设置我的faceboook id:

<meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />
Run Code Online (Sandbox Code Playgroud)

或者直接用这个:

<meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="\ XXXXXXXXXXXXXX" />
Run Code Online (Sandbox Code Playgroud)

但我必须在我的gradle属性中设置我的facebook id.这样做的正确方法是什么?

谢谢.

Edu*_*rdo 7

我是Gradle的新手,但如果我理解你的问题,我会建议使用类似的东西:

buildTypes {
    debug {
        // ...
    }
    release {
        // ...
        resValue "string", "facebook_application_id", "XXXXXXXXXXXXXXXXX"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,在您的发布版本中,对于此示例,您可以将其用作

android:value="@string/facebook_application_id"
Run Code Online (Sandbox Code Playgroud)

甚至

R.string.facebook_application_id
Run Code Online (Sandbox Code Playgroud)