问题很奇怪。我试图在build.gradle
中直接添加字符串,因为我需要它来使用托盘库(https://github.com/grandcentrix/tray)。在我的第一个项目中一切都很好。在第二个项目中,它有点复杂。我使用gradle:1.2.3
并在导出已签名的apk时出现MissingTranslation错误。
的build.gradle
applicationId "some.app.id"
resValue "string", "tray__authority", "${applicationId}.tray"
构建错误
.../build/generated/res/generated/release/values/generated.xml
Error:(7) Error: "tray__authority" is not translated in "pl" (Polish) [MissingTranslation]
<string name="tray__authority">some.app.id.tray</string>
generated.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Automatically generated file. DO NOT MODIFY -->
<!-- Values from default config. -->
<string name="tray__authority">some.app.id.tray</string>
</resources>
有一些类似的问题,但所有问题都与strings.xml有关,并建议
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
或仅translatable="false"
我不能这样做,因为文件是自动生成的。如何强制gradle忽略错误?我尝试更改检查设置并将其设为警告,但gradle忽略了我的设置。
我知道这是一个错误(https://code.google.com/p/android/issues/detail?id=152198),但我不知道如何解决它。我找到的所有答案都不起作用。
答案 0 :(得分:10)
好吧,我解决了这个问题。必须要说的是,这个错误很奇怪。它从未出现过,只有最新的gradle版本才有问题。我发现生成签名的apk会忽略我们的检查设置(Android Studio),并且无法生成生产版本。
在正确的地方忽略它!这里:build.gradle
android {
// defaultConfig, buildTypes, etc.
lintOptions {
disable 'MissingTranslation'
}
}
应该使用解决方案,意识到所有缺失的翻译都将被忽略,所以我建议对其进行评论,仔细检查缺少的内容,最后在所有内容完成后取消注释;)
我希望它有所帮助。很烦人的事。
答案 1 :(得分:1)
在Android Studio中,转到设置/检查/ Android lint,在搜索框中键入“missingtranslation”,然后在右下角选择“info”而不是“error”。或完全取消选中。