最近,我已经从 2.2.3 to 2.3.0
项目更新了我的Android Studio,但是在2.2.3中运行正常但是从 2.2.3 to 2.3.0
更新项目依赖关系类路径之后从string.xml
获取大量遗失翻译错误。
有谁能告诉我它为什么会发生以及如何解决这些错误?
答案 0 :(得分:42)
有很多方法可以解决这个问题:
第一种方法:
添加到build.gradle:
android {
lintOptions {
disable 'MissingTranslation'
}
}
第二种方法:
它是您的字符串文件中ignore
命名空间的tools
属性,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation" >
<!-- your strings here; no need now for the translatable attribute -->
</resources>
第三种方法:
在ADT
转到window->Preferences->Android->Lint Error Checking
找到Missing Translation
并将其Severity
更改为Warning
。
参考链接:
http://www.fasteque.com/missingtranslation-issue-for-release-builds/
希望对你有所帮助。
答案 1 :(得分:10)
我面临同样的问题。根据我的观察,这个问题是在Gradle插件版本2.3.0中引入的。当项目中有一个模块支持比您的应用程序或其他模块更多的语言时,就会发生这种情况。您可以开始编辑此类模块的翻译,但这会使其难以维护。
如果您使用此处的任何建议或类似问题禁用Lint检查,您也会忽略应用中的实际翻译错误,其中您支持的语言缺少翻译。在那之后你需要非常小心地保持你的字符串。
还有一个,也不是最理想的选项:将插件版本更改回最后一个未在build.gradle中显示这些症状的版本。
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
然而,有一种方法可以在不丢失重要警告/错误的情况下完成此工作,而无需恢复旧工具版本。您可以在Google's documentation和this answer中找到它。
android {
defaultConfig {
...
resConfigs "en", "fr"
}
}
这将删除不需要的资源以及警告和错误。我已经更新了我的代码,现在它构建得很好。
新的Gradle插件版本引入了另一个问题:如果您得到误报,即错误抱怨您已标记为不可翻译的字符串缺少翻译,请检查字符串名称是否存在于另一个模块中。在这种情况下,重命名或提供翻译,错误消失。