我有一个顶级的Android Gradle项目.在这个项目下面嵌套了多个子项目(有时它们是2级深),即:
top level project
|
project1
vendor libraries
|
lib1
lib2
Run Code Online (Sandbox Code Playgroud)
lint正在中止我在某些库项目中的构建.我可以编辑每个单独的库项目build.gradle以解决问题
android {
lintOptions {
abortOnError false
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我更喜欢顶级build.gradle脚本中的以下代码:
subprojects {
afterEvaluate {
if (getPlugins().hasPlugin('android') ||
getPlugins().hasPlugin('android-library')) {
println name // for debugging
android {
lintOptions {
abortOnError false
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
条件语句确保只挂钩到带有android插件的项目中.我只能使用afterEvaluate来使用它.但是,我的构建仍然在lint错误上失败.
有没有人有一个干净的解决方案从顶层注入这些设置?
更新:
重新排列子项目并在ifEvaluate或使用allprojects后仍然会出现以下类型的错误:
7: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':3rdparty:OrmLiteQueryBuilder:lint'.
> [Ljava/util/HashMap$Entry;
* Try:
Run with --stacktrace option to …Run Code Online (Sandbox Code Playgroud) 构建 Gradle 时,我收到此错误消息:
Error:00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':app:processDebugResources'.
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > java.lang.IllegalArgumentException (no error message)
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Exception is:
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugResources'.
00:29:02.408 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84)
00:29:02.409 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)
00:29:02.409 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
00:29:02.409 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
00:29:02.409 …Run Code Online (Sandbox Code Playgroud)