Java ';:app:lintVitalRelease&x27;生成有符号apk时出错

Java ';:app:lintVitalRelease&x27;生成有符号apk时出错,java,android,gradle,Java,Android,Gradle,我试图在google play上上载我的apk,但遇到一条错误消息:“您上载了一个可调试的apk。出于安全原因,您需要禁用调试才能在google play中发布。了解有关可调试apk的更多信息。” 然后我在清单中编写了android:debuggable=“false”,然后重试。我遇到了相同的错误,因此我将模块中的构建变量设置为release,并再次尝试生成apk,但这次生成了以下错误: Error:Gradle: Execution failed for task ':app:lintVit

我试图在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
      }
  }
  ...

完全从清单中删除该语句,Eclipse将在运行中为您处理该语句。

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

lintOptions { 

    checkReleaseBuilds false

}

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

Windows->references->android->lint错误检查

取消勾选运行完全错误


从android studio创建签名apk时,我也遇到了同样的问题。我只是在build.gradleandroid{}中的文件上做了一些小改动

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

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

在app.gradle文件中尝试这三行

***Try this***

 buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            signingConfig signingConfigs.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
}

确保您在所有
string.xml
文件中定义了所有翻译,我不建议关闭lint检查,它们存在是有原因的。相反,检查错误并修复它

错误报告保存到
[app module]/build/reports/lint results yourBuildName fatal.html
。您可以在浏览器中打开此文件以读取有关错误的信息


如果Gradle能够更清楚地说明错误报告是在哪里生成的,那就太好了。

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


希望这有帮助

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

<string translatable="false" name="stringname">This string doesn't need translation</string>
此字符串不需要翻译

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

然后修复它。

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

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

此字符串不需要翻译

您可以从gradle build选项卡中选择Assembly来查找更多信息:

尝试下面的代码


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

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

大家好,这对我很有效,我只是修改了我的构建类型,如下所示:

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'
        }
    }
转到build.gradle(模块:应用程序)

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下添加app.gradle{

lintOptions {

    quiet true
    abortOnError false
}
}


它将获得工作

如何查找错误详细信息

Anylyze->检查代码

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


在我的例子中,由于Google IAP中未解析的javadoc引用,构建失败。在我的例子中,问题与Google Play要求的最低目标API级别有关。设定的时间不到26分钟

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

    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }
上面的代码可以通过忽略它来修复问题,但也可能导致应用程序崩溃

好的答案在以下链接中:


只需在此处找到错误原因并进行修复

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

正如许多人所建议的,最好尝试从源代码处修复错误。检查lint生成的文件

/app/build/reports/lint-results-release-fatal.html
阅读该文件,您将被引导到错误的来源。检查我的:错误来自不正确的视图约束。

将此添加到android{}中 build.gradle(模块:应用程序)


当我将
Android Gradle插件版本更新为
4.0.1
Gradle版本更新为
6.1.1
时,我遇到了这个问题


如果有人赶时间,只需将
Gradle插件版本
降级为
3.6.3
,将
Gradle版本
降级为
5.6.4
。它对我很有效。

不要禁用lint选项

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

路径:

YourAppProjectFolder\app\build\reports


解决所有错误和警告:)

这对应用程序没有任何其他副作用,对吗?不,关闭棉绒不会对应用程序造成任何副作用。Lint是一个代码分析工具,这里提到的由设置可调试属性引起的错误可以在build/outputs文件夹中的“Lint results release fatal.html”文件中详细查看;因此,遵循一些其他建议,将其添加到我的build.grade文件中的应用程序级别,即再往下一个文件夹中,android部分已经存在。警告:这只会禁用lint检查。在禁用错误之前,最好至少查看一下错误。在我的例子中,它们是关于某些特定语言缺少的字符串。点击“分析”->“检查代码…”“我不建议这样做。在我的例子中,忽略这些警告会导致由于缺少资源而导致运行时崩溃。请查看lint-results-release-fatal.html并修复所有问题。非常漂亮,但是这个窗口从哪里来?我在Android Studio中找不到它…这对我来说很有用。我也有类似的问题。执行任务失败:应用程序:lint***发布'>org.picocontainer.M