生成签名的apk.错误:(7)build/generated/res/generated/release/values/generated.xml中的[MissingTranslation]

kor*_*ras 6 android android-build apk android-gradle-plugin

问题很奇怪.我正在尝试直接添加一个String,build.gradle因为我需要它来使用Tray库(https://github.com/grandcentrix/tray).在我的第一个项目中一切都很好.在第二个项目中,它有点复杂.我正在使用gradle:1.2.3并在导出已签名的apk时出现MissingTranslation错误.

的build.gradle

applicationId "some.app.id"
resValue "string", "tray__authority", "${applicationId}.tray"
Run Code Online (Sandbox Code Playgroud)

构建错误

.../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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

有几个类似的问题,但所有这些问题都与strings.xml有关,并建议使用

<resources
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="MissingTranslation">
Run Code Online (Sandbox Code Playgroud)

要不就 translatable="false"

我不能这样做因为文件是自动生成的.如何强制gradle忽略错误?我尝试更改检查设置并将其设为警告,但gradle忽略了我的设置.

我知道这是一个错误(https://code.google.com/p/android/issues/detail?id=152198),但我不知道如何解决它.我找到的所有答案都不起作用.

kor*_*ras 11

好吧,我解决了这个问题.必须要说的是,这个错误很奇怪.它从未出现过,只有最新的gradle版本才有问题.我发现生成签名的apk会忽略我们的检查设置(Android Studio),因此无法生成生产版本.

只需在正确的地方忽略它!这里:build.gradle

android {
    // defaultConfig, buildTypes, etc.

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

应该使用该解决方案,意识到所有缺失的翻译都将被忽略,因此我建议对其进行评论,仔细检查缺少的内容,并在所有内容完成后最终取消注释;)

我希望它对某人有所帮助.非常讨厌的事情.