【问题标题】:':app:lintVitalRelease' error when generating signed apk生成签名的 apk 时出现“:app:lintVitalRelease”错误
【发布时间】:2014-07-28 16:58:47
【问题描述】:

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

然后我在清单中写了android:debuggable="false" 并再次尝试。我遇到了同样的错误,所以我将我的模块中的构建变体设置为发布并尝试再次生成一个 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/… 转到此页面以获取答案。它为我工作
  • "但是发现问题并纠正它呢???"我也是这么想的,但我总是忽略了底部栏上的“检查结果”选项卡以及 build\report 文件夹内容。请检查。
  • build/report 文件夹是一个很好的提示。对我来说,问题是缺少翻译,从 html 报告中可以清楚地看到。
  • 关于错误google给你解决方案,你为什么不试试这个????首先尝试理解错误以及错误消息

标签: java android gradle


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    lintOptions { 
    
        checkReleaseBuilds false
    
    }
    

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

    【讨论】:

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

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

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

    【讨论】:

    • 非常漂亮,请问这个窗口是哪里来的?我在 Android Studio 中找不到它...
    【解决方案4】:

    我在从 android studio 创建签名 apk 时遇到了同样的问题。我只是在 android {}

    内的 build.gradle 文件上稍作更改
    lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }
    

    【讨论】:

    • 这对我有用。我有一个类似的问题。任务‘:app:lint***Release’执行失败。 > org.picocontainer.MutablePicoContainer.registerComponentInstance(Ljava/lang/Object;)Lorg/picocontainer/ComponentAdapter;
    【解决方案5】:

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

    【讨论】:

      【解决方案6】:
      ***Try this***
      
       buildTypes {
              release {
                  lintOptions {
                      disable 'MissingTranslation'
                      checkReleaseBuilds false
                      abortOnError false
                  }
                  minifyEnabled false
                  signingConfig signingConfigs.release
              }
          }
      

      【讨论】:

        【解决方案7】:

        在您的 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 发布您的问题可能会正确地指导您。
        【解决方案8】:

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

        【讨论】:

        • 那是我的问题....添加缺少的翻译解决问题谢谢
        • 为我工作,缺少一些翻译。
        【解决方案9】:

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

        错误报告保存到[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 是有原因的。
        【解决方案10】:

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

        希望这会有所帮助!

        【讨论】:

        • 这两个文件对我来说都是空的。
        【解决方案11】:

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

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

        【讨论】:

          【解决方案12】:

          如果您想找出确切的错误,请转到项目中的以下路径:/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 文件的方法。我刚刚更新了我的答案,您可以回来查看。
          【解决方案13】:

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

          这个字符串不需要翻译

          【讨论】:

            【解决方案14】:

            您可以从 gradle build 选项卡中选择 assemble 找到更多信息:

            【讨论】:

            • 这是实际的答案,在 gradle 窗口中的 assemble in app 中双击运行它,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 } 并添加了它,但每次构建版本时都会遇到相同的错误
            【解决方案15】:

            试试下面的代码

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

            【讨论】:

              【解决方案16】:

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

              【讨论】:

                【解决方案17】:

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

                【讨论】:

                  【解决方案18】:

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

                  【讨论】:

                    【解决方案19】:

                    如果在android下添加app.gradle{

                    lintOptions {
                    
                        quiet true
                        abortOnError false
                    }
                    

                    }

                    它会工作的

                    【讨论】:

                    • 我认为如果可能的话,最好修复 lints 和错误,而不是跳过检查
                    【解决方案20】:

                    如何查找错误详情

                    Anylyze -> 检查代码

                    然后在检查结果中你会看到一个错误

                    在我的案例中,由于 Google IAP 中未解决的 javadoc 引用而导致构建失败?

                    【讨论】:

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

                    在我的情况下,问题与 Google Play 要求的最低目标 API 级别有关。它被设置为小于 26。

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

                    【讨论】:

                      【解决方案22】:
                          lintOptions {
                            checkReleaseBuilds false
                            abortOnError false
                          }
                      

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

                      好的答案在以下链接中:

                      Error when generate signed apk

                      【讨论】:

                        【解决方案23】:

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

                        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。
                        【解决方案24】:

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

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

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

                        【讨论】:

                          【解决方案25】:

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

                          【讨论】:

                            【解决方案26】:

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

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

                            【讨论】:

                              【解决方案27】:

                              不要禁用 lint 选项

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

                              路径:

                              YourAppProjectFolder\app\build\reports

                              解决所有错误和警告:)

                              【讨论】:

                                【解决方案28】:

                                升级 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'
                                

                                帮我解决了这个问题

                                【讨论】:

                                  猜你喜欢
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 2023-03-13
                                  • 2020-08-02
                                  • 2018-03-08
                                  • 1970-01-01
                                  相关资源
                                  最近更新 更多