我正在使用 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 来解决这个问题,但问题是:为什么我收到此错误消息?
请大家救救我!
将此添加到您的
app/build.gradle
文件中
android {
//...
lintOptions {
abortOnError false
}
}
在构建应用程序模块时遇到一些 lint 问题。
您可以在
Project\module\build\outputs
中找到生成的报告中发现的所有问题。在
app\build.gradle
中使用此脚本
android {
lintOptions {
abortOnError false
}
}
您可以禁用该阻止,但这不是最佳实践。
您应该分析 lint 报告来解决每一点。
您的 build.gradle(Module: app) 应包含
android {
lintOptions {
abortOnError false
}
}
如果
abortOnError false
不起作用,Flutter版本2.5.1建议在lintOptions中使用以下参数:
android{
...
lintOptions {
checkReleaseBuilds false
}
}
运行
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 失败的原因。一旦修复了这些错误,您的构建就会顺利完成。
我收到错误
Execution failed for task ':app:lintVital[myBuildVariant]'
和空指针错误。它发生在切换分支之后,对我有帮助的是做一个 Build -> Clean Project
仅在构建gradle中添加此代码:
android {
lintOptions {
abortOnError false
}
}
应该足够了。
如果您遇到此问题,请不要向您的 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'
)
}
}
因此,如果该库中存在错误,您可以在发布之前修复错误
新的 lint 方式是这样的
android {
lint {
isAbortOnError = false
}
}
您可以使用以下命令在调试和发布版本中完全禁用 lint。附:不建议在发布版本中禁用 lint。
在 gradle.properties 中添加以下行
gradle=build -x lint -x lintVitalRelease