当前位置: 首页 > 知识库问答 >
问题:

即使使用未翻译的字符串,如何在Android Studio上签署APK?

翟渝
2023-03-14

我最近将我的应用程序迁移到Android Studio。这样做时我遇到了一些问题,但我最终克服了它们。

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

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

(其中“...”是一个字符串)

在底部,在大量此类错误之后,我看到了以下内容:

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
    }
}
...

我不确定出了什么问题,也不知道如何解决。在月食上,我很容易做到。缺少翻译不应该阻止我签署APK。。。

在我看来,Lint似乎阻止了APK的导出,原因是我没有翻译所有的字符串。这是真的吗?

谁能帮帮我吗?如何修复此问题,以便Lint只显示警告?或者,如果我确定要这样做,是否需要一个确认对话框?

共有3个答案

艾雪风
2023-03-14

解决此错误的简单方法

只需添加以下代码即可将“disable‘missingtransformation’”添加到您的构建中。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
      }
  }
  ...

也可以添加以下内容:

android {
        buildTypes {
            release {
                lintOptions {
                    disable 'MissingTranslation'
                }
            }
        }
    }
姜旭
2023-03-14

在我看来,Lint似乎阻止了APK的导出,原因是我没有翻译所有的字符串。这是真的吗?

对默认选项是lintOptions。abortOnError=真

谁能帮帮我吗?

您应该打开位于主项目模块的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
    }
}

一些Lint警告默认情况下会作为错误转向工作室,我实际上不知道为什么,但就翻译而言,我想这是一种“停止”您发布翻译不完整的应用程序的方法,因为最后一分钟添加了一些文本。

使用lintOptions check ReleaseBuilds中止OnError,您将Lint的检查设置为不运行发布版本,并且如果发现“错误”也不会停止。下面我解释了Lint错误设置的位置,因此如果您想更进一步,您可以向前一步并逐个阅读它们。其中一些为代码优化提供了有用的说明。

如何修复此问题,以便Lint只显示警告?或者,如果我确定要这样做,是否需要一个确认对话框?

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

该选项位于设置

如果您的错误字符串永远不会被翻译,另一种选择是在您的XML字符串文件工具中添加:在根项目或每个不可翻译的字符串中添加忽略="MissingTransversion"

伊富
2023-03-14

解决问题的最干净的方法是仅针对发布版本禁用Lint检查缺失的翻译。

为此,在构建中添加“禁用‘missingtransformation’”。gradle文件如下所示:

android {
    buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
            }
        }
    }
}
 类似资料:
  • 我正在用Django做一个中文博客。我用中文写所有我能控制的东西,如文章文本,博客标题,博客导航,评论和联系人表单的标签标签。我唯一不能控制的是表单提交错误,如“此字段是必需的。”,“输入有效的电子邮件地址。”。因为我使用django评论框架和表单库来制作我的评论表单和联系人表单,我不知道如何将英文版替换成中文版。 为什么django翻译一些错误消息而忽略其他错误消息? 如果django不能自动翻

  • 问题内容: 我在相当大的Angular项目上使用angular-translate。我将项目分为多个模块以使其更易于管理,但是无法分解每个模块的翻译字符串。 例如,我有模块A和B,其中B是A的子模块。有一些与模块A覆盖的HTML有关的字符串,它们位于’/json/localization/A/en.json’中。同样,我在’/json/localization/B/en.json’中放置了与B有关

  • 我不是在问AffineTransform是如何工作的,而是如何使用它的翻译方法。 我多次阅读API,但仍然不明白它是如何工作的。 公共空转换(双tx,双ty) 将此转换与翻译转换连接起来。这相当于调用concatenate(T),其中T是由以下矩阵表示的AffineTransform: 问题:

  • 我有一个从xml文档中读取数据的程序。在这个xml文档中,一些属性包含特殊字符,如“\n”、“t”等。 有没有一种简单的方法可以将所有这些字符串替换为实际的字符,或者我必须像下面的例子一样为每个字符手动替换? 手动示例: 编辑: 我正在寻找某种方法来处理字符串,就像这样的转义字符串(尽管我知道这是行不通的)

  • 是否可以指定文件中的字符串在

  • 本文向大家介绍使用Django的模版来配合字符串翻译工作,包括了使用Django的模版来配合字符串翻译工作的使用技巧和注意事项,需要的朋友参考一下 Django模板使用两种模板标签,且语法格式与Python代码有些许不同。 为了使得模板访问到标签,需要将 {% load i18n %} 放在模板最前面。 这个{% trans %}模板标记翻译一个常量字符串 (括以单或双引号) 或 可变内容: 如果