Gradle 构建:任务“:app:lint”执行失败

问题描述 投票:0回答:12

我正在使用 Android Studio 2.0,当我尝试运行我的程序时,发生了一些奇怪的事情。我运行了 gradle 的构建命令,得到了这个错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:lint'.
> Lint found errors in the project; aborting build.

Fix the issues identified by lint, or add the following to your build script to proceed with errors:
...
android {
    lintOptions {
        abortOnError false
    }
}
...

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4.197 secs
Lint found errors in the project; aborting build.

Fix the issues identified by lint, or add the following to your build script to proceed with errors:
...
android {
    lintOptions {
        abortOnError false
    }
}
...
10:41:28: External task execution finished 'build'.

所以...那到底是什么?我应该通过将代码添加到 gradle.build 来解决这个问题,但问题是:为什么我收到此错误消息?

请大家救救我!

android android-studio gradle android-gradle-plugin android-studio-2.0
12个回答
79
投票

将此添加到您的

app/build.gradle
文件中

android {
    //...
    lintOptions {
        abortOnError false
    }
}

29
投票
  1. 切换到项目视图
  2. 然后,项目/应用程序/构建/报告/lint-结果
  3. 现在,您将发现两种格式的 lint 结果文件 - 1) xml 和 2) html。

您可以按原样查看这些文件。不过,我发现在浏览器中查看 lint 结果很方便。只需右键单击 html 文件并选择在浏览器中查看即可。

它在我的 Chrome 浏览器中打开,如下图所示。


25
投票

在构建应用程序模块时遇到一些 lint 问题。

您可以在

Project\module\build\outputs
中找到生成的报告中发现的所有问题。
在这里您将找到带有 lint 报告的 html 文件和 xml 文件。

app\build.gradle

中使用此脚本
android {
    lintOptions {
        abortOnError false
    }
}

您可以禁用该阻止,但这不是最佳实践
您应该分析 lint 报告来解决每一点。


10
投票

我认为发现错误比忽略它们更好。

试试这个:

在 Gradle Console 中找到“将 HTML 报告写入文件”,打开指定的 HTML 文件,您将找到一个 lint 报告

找到你的错误并修复它们


3
投票

您的 build.gradle(Module: app) 应包含


android {
    lintOptions {
        abortOnError false
    }
}


2
投票

如果

abortOnError false
不起作用,Flutter版本2.5.1建议在lintOptions中使用以下参数:

android{
    ...
    lintOptions {
        checkReleaseBuilds false
    }
}

0
投票

运行

gradle build -i
而不是仅运行
gradle build
。产出会比平时多很多。其中一些看起来像这样:

> Task :project-name:lint FAILED
Putting task artifact state for task ':project-name:lint' into context took 0.0 secs.
Up-to-date check for task ':project-name:lint' took 0.0 secs. It is not up-to-date because:
  Task has not declared any outputs.
Ran lint on variant release: 333 issues found
Ran lint on variant debug: 333 issues found
Wrote HTML report to file:///some/path/lint-results.html
Wrote XML report to file:///some/pahth/lint-results.xml

:project-name:lint (Thread[Task worker for ':',5,main]) completed. Took 1.756 secs.

查看

/some/path/lint-results.html
了解 lint 失败的原因。一旦修复了这些错误,您的构建就会顺利完成。


0
投票

我收到错误

Execution failed for task ':app:lintVital[myBuildVariant]'
和空指针错误。它发生在切换分支之后,对我有帮助的是做一个 Build -> Clean Project


0
投票

仅在构建gradle中添加此代码:

android {
    lintOptions {
        abortOnError false
    }
}

应该足够了。


0
投票

如果您遇到此问题,请不要向您的 gradle 添加 linter 禁用程序, 这是一个访问错误问题,我在使用 sudo 命令执行几个命令后在反应本机上遇到了这个问题, 只需重置您的代码访问权限,然后再次释放 例如Mac

sudo chmod -R 777 <project-root-folder-name>

如果仍然使用

preBuild.doFirst { 
ant.replaceregexp(
    match:'Bad gradle', 
    replace:'Correct one', 
    flags:'g', 
    byline:true
) { 
    fileset(
        dir: 'Where to search', 
        includes: '*.java'
    ) 
} 
}

因此,如果该库中存在错误,您可以在发布之前修复错误


0
投票

新的 lint 方式是这样的

android {
    lint {
        isAbortOnError = false
    }
}

0
投票

您可以使用以下命令在调试和发布版本中完全禁用 lint。附:不建议在发布版本中禁用 lint。

在 gradle.properties 中添加以下行

gradle=build -x lint -x lintVitalRelease
© www.soinside.com 2019 - 2024. All rights reserved.