如何使用非翻译字符串在Android Studio上签名APK?

and*_*per 52 android translation apk android-studio

背景

我最近将我的应用迁移到Android-Studio.我有一些问题,但最终我克服了它们.

问题

出于某种原因,在Android Studio上,当我尝试签署APK时,我收到很多错误,如下所示:

Error:(16) Error: "..." is not translated in "de" (German), "el" (Greek), "iw" (Hebrew) [MissingTranslation]
Run Code Online (Sandbox Code Playgroud)

(其中"......"是一个字符串)

在底部,经过这种很多错误,我看到了这个:

Error:Execution failed for task ':app:lintVitalRelease'.
> Lint found fatal errors while assembling a release target.
To proceed, either fix the issues identified by lint, or modify your build script as follows:
...
android {
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }
}
...
Run Code Online (Sandbox Code Playgroud)

这个问题

我不确定什么是错的以及如何解决它.在Eclipse上我很容易做到了.缺少翻译不应该阻止我签署APK ...

对我而言,似乎Lint阻止了APK的导出,原因是我没有翻译所有的字符串.真的吗?

谁能帮帮我吗?我该如何解决这个问题,以便Lint会向我显示警告?如果我确定要这样做,还是确认对话框?

yvo*_*olk 114

解决该问题的最简单方法是仅对发布版本禁用Lint检查缺失的翻译.

为此,请在build.gradle文件中添加"disable'MissingTranslation'",如下所示:

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


mad*_*mad 30

对我而言,似乎Lint阻止了APK的导出,原因是我没有翻译所有的字符串.真的吗?

是.默认选项是lintOptions.abortOnError = true

谁能帮帮我吗?

build.gradle如果没有模块,则应打开位于主项目模块的文件或通用文件夹.然后添加建议的行:

android {
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }
}
Run Code Online (Sandbox Code Playgroud)

一些Lint警告默认转为工作室作为错误,我实际上不知道为什么,但就翻译而言,我想这是一种"停止"你发布应用程序的方法,由于最后一分钟的添加,翻译不完整一些文本.

随着lintOptions checkReleaseBuilds abortOnError你设置皮棉检查不发布版本中运行,如果一个"错误"被发现也不会停止.下面我将解释可以找到Lint错误设置的位置,因此如果您想要更进一步,可以向前迈出一步,逐一阅读.其中一些提供了有用的代码优化指令.

我该如何解决这个问题,以便Lint会向我显示警告?如果我确定要这样做,还是确认对话框?

Android Studio设置中还有一个选项可以将任何Lint错误更改为Lint警告,但我从未测试过.我经常转向gradle解决方案.

该选项位于Settings> Inspections> Android Lint.为了便于查找打开设置并在搜索(位于顶部)键入Lint translation,您可以更改左侧显示的翻译选项,从错误到警告.

如果您的错误字符串永远不会被翻译,则另一个选项tools:ignore="MissingTranslation"是在根项目或每个不可翻译的字符串处添加XML字符串文件.


小智 5

解决此错误的简单方法

只需添加以下代码要在build.gradle文件中添加"禁用'MissingTranslation'",如下所示:

...
  android {
      lintOptions {
          checkReleaseBuilds false
          // Or, if you prefer, you can continue to check for errors in release builds,
          // but continue the build even when errors are found:
          abortOnError false
      }
  }
  ...
Run Code Online (Sandbox Code Playgroud)

或者你也可以添加这个:

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