ChatGPT解决这个技术问题 Extra ChatGPT

生成签名的 apk 时出现“:app:lintVitalRelease”错误

我尝试在 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
      }
  }
  ...
所有的答案似乎要么不检查错误,要么不中止错误,但是找到问题并纠正它呢? Android Studio 没有显示关于什么是错误的信息......任何人都能够在不忽略错误的情况下解决这个问题?
stackoverflow.com/questions/43203415/… 转到此页面 fr 答案。它为我工作
“但是找到问题并纠正它呢???”我也是这么想的,但我总是忽略了底部栏上的“检查结果”选项卡以及 build\report 文件夹内容。请检查。
build/report 文件夹是一个很好的提示。对我来说,问题是缺少翻译,从 html 报告中可以清楚地看到。
关于错误谷歌给你的解决方案,你为什么不试试这个????首先尝试了解错误以及错误消息

k
krishh

我不建议关闭棉绒检查,它们在那里是有原因的。相反,检查错误是什么并修复它。

错误报告保存到 [app module]/build/reports/lint-results-yourBuildName-fatal.html。您可以在浏览器中打开此文件以了解错误。

如果 Gradle 可以更清楚地说明错误报告的生成位置,那就太好了。


同意,纠正错误要好得多!也可以使用 gradlew lint 或通过 IDE 手动生成报告,请参阅 developer.android.com/studio/write/lint
是的,正确的方向。此外,该 html 中的错误报告得到了很好的描述,并且错误得到了很好的解决,所以我轻松地纠正了它们!
是的,当它说 fix the issues identified by lint 但实际上并没有显示那些错误或报告路径时,这很烦人......
这必须是公认的答案。禁用 lint 不是一个好的解决方案。
在我的情况下,错误是 MissingTranslation: Incomplete translation - Google 的问题:为什么 Android Studio 中没有显示?它被称为 integrated development environment 是有原因的。
N
N Droidev

我遇到了这个问题并通过添加解决了它:

lintOptions { 

    checkReleaseBuilds false

}

到我的 android{ } 部分中的 build.gradle 文件。       


这对应用程序没有任何其他副作用吗?
不会,关闭 lint 不会对应用程序造成任何副作用。 Lint 是一个代码分析工具,这里提到的设置 debuggable 属性导致的错误可以在 build/outputs 文件夹中的“lint-results-release-fatal.html”文件中详细查看。
警告:这只会禁用 lint 检查。最好在禁用它们之前至少查看一下错误。就我而言,它们是关于特定语言的一些缺失字符串。点击“分析”->“检查代码..”
我不推荐这个。在我的情况下,忽略这些警告会导致运行时由于缺少资源而崩溃。请查看 lint-results-release-fatal.html 并修复所有问题。
在我的情况下它给出了白屏。 -1
Y
Yosidroid

如果您想找出确切的错误,请转到项目中的以下路径:/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


这比忽略错误并继续前进要好得多。而且HTML文件很容易理解问题。
我在 /app/build/reports/lint-results-release-fatal.xml 中发现了问题。谢谢
救生员。在查看 xml 文件后,问题在几秒钟内就解决了。
没有报告文件夹!
@roghayeh hossein 如果您使用的是 kotlin,您将找不到报告文件夹。还有另一种查找 lint 文件的方法。我刚刚更新了我的答案,您可以回来查看。
R
Roberto

确保您在所有 string.xml 文件中定义了所有翻译


那是我的问题....添加缺少的翻译解决了问题谢谢
为我工作,缺少一些翻译。
P
Pecolyte Wang

如果您可能试图找出问题所在,我在我的项目的以下路径中找到了我的:/app/build/reports/lint-results-release-fatal.html(或 .xml)。

希望这可以帮助!


两个文件对我来说都是空的。
A
Aveek

从android studio创建签名apk时我遇到了同样的问题。我只是在 android {} 中对 build.gradle 文件进行了一些更改

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

这对我有用。我有一个类似的问题。任务 ':app:lint***Release' 执行失败。 > org.picocontainer.MutablePicoContainer.registerComponentInstance(Ljava/lang/Object;)Lorg/picocontainer/ComponentAdapter;
M
Mikhail

如何查找错误详细信息

Anylyze -> 检查代码

https://i.stack.imgur.com/j8us4.png

然后在检查结果中,您将看到一个错误

https://i.stack.imgur.com/hm0pA.png

在我的情况下,由于 Google IAP 中未解决的 javadoc 引用,构建失败😐


这应该是公认的答案。对于所有建议禁用 lint 检查的人来说,这只是一种解决方法。修复错误仍然比跳过它更好。跳过 lint 检查应该只在非常特殊的情况下进行,而不是一直进行。再一次,这应该很少做,甚至根本不应该做。
A
Amit raj
***Try this***

 buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            signingConfig signingConfigs.release
        }
    }

M
Mateusz Kaflowski

https://i.stack.imgur.com/k0opI.png


这是实际的答案,转到应用程序中的 assemble,在 gradle 窗口中并通过双击运行它,Android Studio 会准确地告诉你它在弹出什么。
天哪……谢谢!那一个为我节省了很多时间! :D
我得到了 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 } 并添加了它,但每次构建版本时都会遇到相同的错误
R
Rehan Sarwar

在你的 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
}

@justColbs 可能是您面临另一个问题。使用 log cat 发布您的问题可能会正确地指导您。
S
Stephen Ostermiller

这对我有用,我只是像这样修改了我的 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'
    }
}

A
Amir Hossein Ghasemi

只需在这里找到错误原因并修复它。

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。
P
Panneerchelvam Piratheepan

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
}

S
Stephen Ostermiller

我的问题是缺少翻译。我有一个未翻译的 settings.xml,因为它不需要,所以我必须将 "translatable="false" 添加到字符串中:

<string translatable="false" name="stringname">This string doesn't need translation</string>


t
tomDev

我的问题是缺少翻译。我有一个未翻译的 settings.xml,因为它不需要,所以我必须在字符串中添加“translatable="false":

<string translatable="false" name="stringname">This string doesn't need translation</string>

K
Keshav Gera

解决这个问题 在 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'
        }
    }

Q
Quwaysim

正如许多人所建议的那样,尝试从源头修复错误总是更好。检查 lint 生成的文件

/app/build/reports/lint-results-release-fatal.html

阅读该文件,您将被引导到错误的来源。看看我的:错误来自不正确的视图约束。


S
Sandy.....

试试下面的代码

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

s
someone

Windows -> 参考 -> Android-> lint 错误检查。

取消勾选运行完全错误......

https://i.stack.imgur.com/UgBw2.png


非常漂亮,请问这个窗口是哪里来的?我在 Android Studio 中找不到它...
C
Christian Gollhardt

转到 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
}

E
Eran Goldin

从清单中完全删除该语句,Eclipse 会即时为您处理。


m
mdicosimo

就我而言,问题与 Google Play 所需的最低目标 API 级别有关。它被设置为小于 26。

当我将最低目标 API 级别设置为 26 时,问题消失了。


S
Swarnava Chakraborty

不要禁用 lint 选项

检查 Lint 报告中的错误和警告

小路:

YourAppProjectFolder\app\build\reports

解决所有错误和警告:)


K
Kamal

您应该在项目级 gradle 文件中添加代码以生成覆盖错误的 apk


Y
Yosidroid
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

上面的代码可以通过忽略它来解决问题,但它也可能导致应用程序崩溃。

好的答案在以下链接中:

Error when generate signed apk


J
Jeiel Junio

当我将 Android Gradle Plugin Version 更新为 4.0.1 并将 Gradle version 更新为 6.1.1 时,我遇到了这个问题。

如果有人赶时间,只需将 Gradle Plugin Version 降级为 3.6.3,将 Gradle version 降级为 5.6.4。它对我有用。


A
Alish Giri

将 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'

为我解决了这个问题


A
Alpesh Sorathiya

如果在 android{ 下添加 app.gradle

lintOptions {

    quiet true
    abortOnError false
}

}

它会得到工作


我认为如果可能的话,最好修复 lints 和错误,而不是跳过检查
它在 CI/CD 构建中对我有用。