我尝试在 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
}
如何查找错误详细信息
Anylyze -> 检查代码
https://i.stack.imgur.com/j8us4.png
然后在检查结果中,您将看到一个错误
https://i.stack.imgur.com/hm0pA.png
在我的情况下,由于 Google IAP 中未解决的 javadoc 引用,构建失败😐
***Try this***
buildTypes {
release {
lintOptions {
disable 'MissingTranslation'
checkReleaseBuilds false
abortOnError false
}
minifyEnabled false
signingConfig signingConfigs.release
}
}
https://i.stack.imgur.com/k0opI.png
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.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'
}
}
只需在这里找到错误原因并修复它。
yourProject/app/build/reports/lint-results-release-fatal.xml
TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.
,即无法设置targetSdkVersion
25。
https://i.stack.imgur.com/JATGv.png
在 android {} 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
}
我的问题是缺少翻译。我有一个未翻译的 settings.xml,因为它不需要,所以我必须将 "translatable="false"
添加到字符串中:
<string translatable="false" name="stringname">This string doesn't need translation</string>
我的问题是缺少翻译。我有一个未翻译的 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 错误检查。
取消勾选运行完全错误......
https://i.stack.imgur.com/UgBw2.png
转到 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
}
上面的代码可以通过忽略它来解决问题,但它也可能导致应用程序崩溃。
好的答案在以下链接中:
Error when generate signed apk
当我将 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
}
}
它会得到工作
gradlew lint
或通过 IDE 手动生成报告,请参阅 developer.android.com/studio/write/lintfix the issues identified by lint
但实际上并没有显示那些错误或报告路径时,这很烦人......MissingTranslation: Incomplete translation
- Google 的问题:为什么 Android Studio 中没有显示?它被称为integrated development environment
是有原因的。