生成签名的APK时出现':app:lintVitalRelease'错误


238

我试图将我的APK上传到Google Play上,并遇到错误消息:“您上传了可调试的APK。出于安全原因,您需要先禁用调试功能,然后才能在Google Play中发布。了解有关可调试的APK的更多信息。”

然后,我android:debuggable="false"在清单中写下并再次尝试。我遇到了相同的错误,因此我将模块的build变体设置为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
      }
  }
  ...

38
所有答案似乎都是要么不检查错误,要么不因错误中止,但是发现问题并纠正问题呢???Android Studio没有显示任何错误信息...任何人都能够在不忽略错误的情况下解决此问题?
Federico Alvarez '18

stackoverflow.com/questions/43203415/…在此页面上找到答案。它对我的工作
Halim Bezek '18

5
“但是找到问题并纠正它又如何呢?” 我也这么认为,但是我总是忽略底部栏上的“检查结果”选项卡,也忽略了\ report文件夹内容。请检查。
PravyNandas

1
构建/报告文件夹是一个很好的技巧。对我来说,问题是缺少翻译,并且从html报告中可以清楚地看出。
皮特

在错误的谷歌给你的解决方案,你为什么不尝试这个????首先尝试理解错误以及错误消息
Mafujul

Answers:


393

我不建议您关闭皮棉检查,这是有原因的。相反,请检查错误并修复。

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

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


8
同意,改正错误要好得多!也可以使用gradlew lint或通过IDE 手动生成报告,请参阅developer.android.com/studio/write/lint
Anigif

3
是的,方向正确。此外,该html中的错误报告得到了很好的描述,并且这些错误已得到很好的解决,所以我只是轻松地纠正了它们!
CodeToLife

6
是的,当它说fix the issues identified by lint但没有真正显示出这些错误或报告路径时,这非常令人讨厌
。– user25

7
这必须是公认的答案。禁用皮棉不是一个好的解决方案。
slhddn

1
就我而言,错误是MissingTranslation: Incomplete translation-Google的问题:为什么未在Android Studio中显示?integrated development environment之所以称为a 是有原因的。
某处某人

187

我遇到了这个问题,并通过添加以下内容解决了该问题:

lintOptions { 

    checkReleaseBuilds false

}

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


这对应用程序没有任何其他副作用吗?
committedandroider

10
不,关闭棉绒不会对应用程序造成任何副作用。Lint是一种代码分析工具,此处提到的由设置debuggable属性引起的错误可以在build / outputs文件夹中的“ lint-results-release-fatal.html”文件中详细查看。
error1337

在我的顶级build.grade文件中添加android {}部分时遇到了麻烦;因此,遵循了一些其他建议,并将其添加到应用程序级别的build.grade文件中,即,位于更下方的一个文件夹中,该文件夹中已经存在android部分。
Martin Zaske

13
警告:这只会禁用棉绒检查。最好至少在禁用之前查看一下错误。就我而言,它们是关于某些特定语言缺少的字符串。点击“分析”->“检查代码..”
马库斯

2
我不建议这样做。以我为例,忽略这些警告可能会由于缺少资源而在运行时导致崩溃。请查看lint-results-release-fatal.html并解决所有问题。
帕维尔Nadolski

76

如果要查找确切的错误,请转到项目中的以下路径:/app/build/reports/lint-results-release-fatal.html(或.xml)。最简单的方法是,如果转到xml文件,它将准确显示错误的内容,包括错误在Java类或xml文件中的位置。关闭皮棉检查不是一个好主意,它们存在是有原因的。相反,请转到:

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

并修复它。


2
这比忽略错误并继续前进要好得多。而且HTML文件非常容易理解问题。

我在/app/build/reports/lint-results-release-fatal.xml中发现了问题。谢谢
Bukunmi '19

救生员。查看xml文件后,问题在几秒钟内就解决了。
Roman Rozenshtein19年


40

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

希望这可以帮助!


这两个文件对我来说都是空的。
m9m9m

35

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

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

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

24

如何查找错误详细信息

Anylyze->检查代码

在此处输入图片说明

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

在此处输入图片说明

就我而言,由于Google IAP中未解析的Javadoc引用,构建失败


3
这应该是公认的答案。对于所有建议禁用棉绒检查的人来说,这只是一种解决方法。修正错误比跳过错误更好。跳过皮棉检查仅应在非常特殊的情况下进行,而不要一直进行。再说一次,应该很少甚至根本不要做。
Archie G.Quiñones19年

20
***Try this***

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

18

您可以从gradle构建选项卡中选择组装来找到更多信息:在此处输入图片说明


5
这是实际的答案,请转到gradle窗口中的应用程序中的组装,然后双击运行它,Android Studio会准确告诉您它弹出的内容。
Wajid Ali

1
哦,天哪...谢谢!那个节省了我很多时间!:D
thinklinux

我知道了,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 }并且添加了它,但是每次构建发行版时都遇到相同的错误
Oliver D,

11

在您的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发布您的问题可能会正确地指导您。
Rehan Sarwar

8

我的问题是缺少翻译。我有一个settings.xml,由于不需要而未翻译,因此必须在字符串中添加“ translatable =“ false”:

这个字符串不需要翻译


8

大家好,这对我有用,我只是这样修改我的BuildType:

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

7

只需在此处找到错误原因并修复即可。

yourProject/app/build/reports/lint-results-release-fatal.xml

1
您应该知道确切的错误并重新认证。谢谢。
Asesha George

我发现TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.在我的日志,即不能设置targetSdkVersion25

6

我的问题是缺少翻译。我有一个settings.xml,由于不需要而未翻译,因此必须在字符串中添加“ translatable =“ false”:

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

4

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

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

阅读该文件,您将被引导至错误的出处。看看我的:错误来自不适当的视图约束。


4

解决此问题在build.gradle(app)文件中使用此文件在Android的主要内部{内部}

  buildTypes {
      //  crunchPngs false // or true   when png error
        release {
            lintOptions {
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

3

尝试下面的代码

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

3

在此处输入图片说明

将其添加到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
}

2

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

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

在此处输入图片说明


1
很漂亮,但是这个窗户从哪里来?我在Android Studio中找不到它…
Martin Zaske

2

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


0

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


0

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

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


0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

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

好的答案是在以下链接中:

生成签名的APK时出错


-2

如果您在android下添加app.gradle {

lintOptions {

    quiet true
    abortOnError false
}

}

会上班的


我认为,如果可能的话,最好修复绒毛和错误,而不是跳过检查
Piero
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.