Android Studio在更新后显示错误(缺少翻译)

时间:2017-03-07 10:37:55

标签: android android-studio android-gradle build.gradle

最近,我已经从 2.2.3 to 2.3.0 项目更新了我的Android Studio,但是在2.2.3中运行正常但是从 2.2.3 to 2.3.0 更新项目依赖关系类路径之后从string.xml获取大量遗失翻译错误。

enter image description here

有谁能告诉我它为什么会发生以及如何解决这些错误?

2 个答案:

答案 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 documentationthis answer中找到它。

android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}

这将删除不需要的资源以及警告和错误。我已经更新了我的代码,现在它构建得很好。

新的Gradle插件版本引入了另一个问题:如果您得到误报,即错误抱怨您已标记为不可翻译的字符串缺少翻译,请检查字符串名称是否存在于另一个模块中。在这种情况下,重命名或提供翻译,错误消失。