Android Studio + Gradle:定义resValue而不进行翻译,我该怎么做?

时间:2015-09-21 08:02:32

标签: android android-gradle

在build.gradle中使用resValue定义资源时,无法将它们标记为可翻译=" false"。在XML中,这是可能的。

例:

在gradle.properties中:

FACEBOOK_APP_ID="XXXXXXXXXXXXX"

在gradle中:

resValue "string", "FACEBOOK_APP_ID", FACEBOOK_APP_ID

当我想要生成已签名的APK时,此字符串上存在翻译错误,因为未翻译为其他语言...但它是正常的,我不想翻译它。

3 个答案:

答案 0 :(得分:4)

Gradle不支持此 。您不能在gradle文件中添加类似于notranslate的任何内容。

您可以添加FACEBOOK_APP_ID以排除lint翻译检查。 MissingTranslation

https://code.google.com/p/android/issues/detail?id=152198

答案 1 :(得分:4)

我在谷歌上传apk时遇到同样的错误我通过添加 translatable = false 来解决它 它与我合作

<String Name = "Facebook_app_id"  translatable = "false" >01234567890</String>

答案 2 :(得分:3)

您可以使用flag translatable =“false”

将其添加到values / string.xml
<string name="facebook_app_id" translatable="false">YOUR_FACEBOOK_APP_ID</String>

或者您可以使用resValuebuildConfigField在您的gradle文件中添加FACEBOOK_APP_ID。这样的事情:

buildTypes {
    debug {
        buildConfigField "string", "facebook_app_id1", "YOUR_FACEBOOK_APP_ID"
        resValue "string", "facebook_app_id", "YOUR_FACEBOOK_APP_ID"
    }
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField "string", "facebook_app_id1", "YOUR_FACEBOOK_APP_ID"
        resValue "string", "facebook_app_id", "YOUR_FACEBOOK_APP_ID"
    }
}

用途:

// buildConfigField
BuildConfig.FACEBOOK_APP_ID1

// resValue
getString(R.string.FACEBOOK_APP_ID)