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

Kap*_*put 22 android android-studio build.gradle android-gradle-plugin

最近我更新了我的Android Studio 2.2.3 to 2.3.0项目在2.2.3中正常运行,但更新项目依赖类路径后,从2.2.3 to 2.3.0 更多的Missing Translations错误string.xml.

在此输入图像描述

任何人都可以告诉我它为什么会发生以及如何解决这些错误?

van*_*loc 44

有很多方法可以解决这个问题:

第一种方法:

添加到build.gradle:

android {
     lintOptions {
        disable 'MissingTranslation'
    }
}
Run Code Online (Sandbox Code Playgroud)

第二种方法:

它是字符串文件中命名空间的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>
Run Code Online (Sandbox Code Playgroud)

第三种方法:

在你ADTwindow->Preferences->Android->Lint Error Checking

发现那里Missing Translation并改变其SeverityWarning.

参考链接:

http://www.fasteque.com/missingtranslation-issue-for-release-builds/

希望对你有所帮助.


jer*_*rry 12

我面临着同样的问题.根据我的观察,这个问题是在Gradle插件版本2.3.0中引入的.当项目中有一个模块支持比您的应用程序或其他模块更多的语言时,就会发生这种情况.您可以开始编辑此类模块的翻译,但这会降低其可维护性.

如果您使用此处的任何建议或类似问题禁用Lint检查,您也会忽略应用中的实际翻译错误,其中您支持的语言缺少翻译.在此之后你需要非常小心地保持你的字符串.

还有一个,也是次优的选项:将插件版本更改回最后一个不在build.gradle中显示这些症状的版本.

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
}
Run Code Online (Sandbox Code Playgroud)

然而,有一种方法可以在不丢失重要警告/错误的情况下完成这项工作,而无需恢复旧的工具版本.您可以在Google的文档中找到它,也可以在此答案中找到它.

android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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