[英]':app:lintVitalRelease' error when generating signed apk
我尝试在 google play 上上传我的 apk 并遇到错误消息:“您上传了一个可调试的 APK。出于安全原因,您需要先禁用调试,然后才能在 Google Play 中发布它。了解有关可调试 APK 的更多信息。”
然后我在清单中写了android:debuggable="false"
并再次尝试。 我遇到了同样的错误,所以我将模块中的构建变体设置为 release 并尝试再次生成一个 apk,但这一次,生成了这个错误:
Error:Gradle: 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
}
}
...
我不建议关闭棉绒检查,它们在那里是有原因的。 相反,检查错误是什么并修复它。
错误报告保存到[app module]/build/reports/lint-results-yourBuildName-fatal.html
。 您可以在浏览器中打开此文件以了解错误。
如果 Gradle 可以更清楚地说明错误报告的生成位置,那就太好了。
我遇到了这个问题并通过添加解决了它:
lintOptions {
checkReleaseBuilds false
}
到我的android{ }
部分中的build.gradle
文件。
如果您想找出确切的错误,请转到项目中的以下路径:/app/build/reports/lint-results-release-fatal.html(或 .xml)。 最简单的方法是,如果您转到 xml 文件,它将准确地显示错误是什么,包括错误在您的 java 类或 xml 文件中的位置。 关闭 lint 检查不是一个好主意,它们的存在是有原因的。 相反,请转到:
/app/build/reports/lint-results-release-fatal.html or
/app/build/reports/lint-results-release-fatal.xml
并修复它。
在 Kotlin 中是不同的。 首先,您需要在 app 文件夹的 build.gradel 的 Android 部分设置以下代码。
android {
:
lintOptions {
baseline(file("lint-baseline.xml"))
}
}
然后从 IDE(分析 > 检查代码)或从命令行运行 lint,如下所示。
$ ./gradlew lintDebug
...
输出打印 lint-baseline.xml 文件在 app 文件夹中的位置,但有时在 app/src 文件夹中以及 /app/lint-baseline.xml
确保您在所有string.xml
文件中定义了所有翻译
如果您可能试图找出问题所在,我在我的项目的以下路径中找到了我的: /app/build/reports/lint-results-release-fatal.html (或 .xml)。
希望这可以帮助!
从android studio创建签名apk时我遇到了同样的问题。 我只是在android {}中对build.gradle文件进行了一些更改
lintOptions {
checkReleaseBuilds false
abortOnError false
}
***Try this***
buildTypes {
release {
lintOptions {
disable 'MissingTranslation'
checkReleaseBuilds false
abortOnError false
}
minifyEnabled false
signingConfig signingConfigs.release
}
}
在你的 app.gradle 文件中尝试这 3 行。
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
}
这对我有用,我只是像这样修改了我的 BuildTypes:
buildTypes {
release {
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
}
}
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
我的问题是缺少翻译。 我有一个未翻译的 settings.xml,因为它不需要,所以我必须在字符串中添加"translatable="false"
:
<string translatable="false" name="stringname">This string doesn't need translation</string>
只需在这里找到错误原因并修复它。
yourProject/app/build/reports/lint-results-release-fatal.xml
我的问题是缺少翻译。 我有一个未翻译的 settings.xml,因为它不需要,所以我必须在字符串中添加“translatable="false":
<string translatable="false" name="stringname">This string doesn't need translation</string>
解决这个问题 在 build.gradle (app) File Inside main Android { inside } 中使用这个
buildTypes {
// crunchPngs false // or true when png error
release {
lintOptions {
checkReleaseBuilds false
abortOnError false
}
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
正如许多人所建议的那样,尝试从源头修复错误总是更好。 检查 lint 生成的文件
/app/build/reports/lint-results-release-fatal.html
阅读该文件,您将被引导到错误的来源。 看看我的:错误来自不正确的视图约束。
试试下面的代码
buildTypes {
release {
lintOptions {
disable 'MissingTranslation'
checkReleaseBuilds false
abortOnError false
}
minifyEnabled false
signingConfig signingConfigs.release
}
}
Windows -> 参考 -> Android-> lint 错误检查。
取消勾选运行完全错误......
转到 build.gradle(Module:app)
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
}
从清单中完全删除该语句,Eclipse 会即时为您处理。
就我而言,问题与 Google Play 所需的最低目标 API 级别有关。 它被设置为小于 26。
当我将最低目标 API 级别设置为 26 时,问题消失了。
不要禁用 lint 选项
检查 Lint 报告中的错误和警告
小路:
YourAppProjectFolder\app\build\reports
解决所有错误和警告:)
您应该在项目级 gradle 文件中添加代码以生成覆盖错误的 apk
lintOptions {
checkReleaseBuilds false
abortOnError false
}
上面的代码可以通过忽略它来解决问题,但它也可能导致应用程序崩溃。
好的答案在以下链接中:
当我将Android Gradle Plugin Version
更新为4.0.1
并将Gradle version
更新为6.1.1
时,我遇到了这个问题。
如果有人赶时间,只需将Gradle Plugin Version
降级为3.6.3
,将Gradle version
降级为5.6.4
。 它对我有用。
将 gradle 分发 url 升级为,
// android/gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
并将 buildscript -> 依赖项 -> 类路径升级到,
// android/build.gradle
classpath 'com.android.tools.build:gradle:7.0.0'
为我解决了这个问题
如果在 android{ 下添加 app.gradle
lintOptions {
quiet true
abortOnError false
}
}
它会得到工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.