2017-03-07 61 views
11

最近我已经更新了我的Android工作室后错误(缺少翻译)2.2.3 to 2.3.0项目在2.2.3但2.2.3 to 2.3.0更新项目依赖classpath中获得了大量的翻译缺失的错误从string.xml后运行良好。Android Studio中显示来自更新

enter image description here

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

回答

27

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

第一种方法:

添加到的build.gradle:

android { 
    lintOptions { 
     disable 'MissingTranslation' 
    } 
} 

方法二:

这是ignore属性你的st中的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> 

第三种方法:

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

发现有Missing Translation,并改变其对SeverityWarning

参考链接:

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

希望它能对你有帮助。

+0

@KapilRajput欢迎您! – vanloc

+0

在Android Studio中,你可以在'Preferences-> Editor-> Inspections'中找到它 – Lemberg

4

我正面临完全相同的问题。根据我的观察,这个问题是在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插件版本引入了另一个问题:如果您得到误报,即错误抱怨您标记为不可翻译的字符串缺少翻译,请检查字符串名称是否存在于另一个模块中。在这种情况下,重命名或提供翻译和错误消失。

+0

这工作,似乎是干净的适当的解决方案 resConfigs“en”,“fr”' – Riz