在build.gradle中使用resValue定义资源时,无法将它们标记为可翻译=" false"。在XML中,这是可能的。
例:
在gradle.properties中:
FACEBOOK_APP_ID="XXXXXXXXXXXXX"
在gradle中:
resValue "string", "FACEBOOK_APP_ID", FACEBOOK_APP_ID
当我想要生成已签名的APK时,此字符串上存在翻译错误,因为未翻译为其他语言...但它是正常的,我不想翻译它。
答案 0 :(得分:4)
Gradle不支持此 。您不能在gradle文件中添加类似于notranslate的任何内容。
您可以添加FACEBOOK_APP_ID以排除lint翻译检查。 MissingTranslation
答案 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>
或者您可以使用resValue
或buildConfigField
在您的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)