MissingTranslation两种Android Studio解决方案

用R.string存储些常量是非常方便的事情,但有时中英文同时存在时会存在些问题。例如生成APK时报错:

Error:(4) Error: "app_name" is not translated in "ar" (Arabic), "bg" (Bulgarian), "ca" (Catalan), "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "es" (Spanish), "eu" (Basque), "fi" (Finnish), "fr" (French), "he" (Hebrew), "hi" (Hindi), "hu" (Hungarian), "id" (Indonesian), "it" (Italian), "ja" (Japanese), "ko" (Korean), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "ro" (Romanian), "ru" (Russian), "sk" (Slovak), "sl" (Slovenian), "sv" (Swedish), "th" (Thai), "tr" (Turkish), "uk" (Ukrainian), "zh-CN" (Chinese: China), "zh-TW" (Chinese: Taiwan) [MissingTranslation]
...

其中“app_name”为string内常量。
网上搜罗半天,通常给出的方案是在project的build.gradle的Android中添加

lintOptions{
    checkReleaseBuilds false
    abortOnError false
}

个人感觉过于粗暴。只要孩子哭,就把嘴给堵上,不管什么原因。

其实解决方案有两种,
(一)告诉编译器,不要translate,只要显示我所写的value就好。
为string item 添加 translatable属性,并设置为false。

<string name="app_name" translatable="false">my APPstring>

(二)告诉编译器,仅把translate引起的warning屏蔽掉,不要妨碍APK的生成。
在project的build.gradle的Android中添加

lintOptions{
    disable 'MissingTranslation'
}

当然,若有其他更好方案,愿听详解。

你可能感兴趣的:(android,error,Android,Tips)