久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何從多項目目錄的頂層禁用 Android Gradle 插件中

How to disable lint abortOnError in Android Gradle Plugin from top level of multi project directory(如何從多項目目錄的頂層禁用 Android Gradle 插件中的 lint abortOnError)
本文介紹了如何從多項目目錄的頂層禁用 Android Gradle 插件中的 lint abortOnError的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個頂級 Android Gradle 項目.在此項目下方嵌套了多個子項目(有時它們是 2 級深),即:

I have a top level Android Gradle project. There are multiple subprojects nested below this projects (sometimes they are 2 level deep) i.e:

top level project
   |
project1

vendor libraries
      |
     lib1

     lib2

lint 正在中止我在某些庫項目中的構建.我可以編輯每個單獨的庫項目的 build.gradle 來解決問題

lint is aborting my build in some of the libraries projects. I can edit each individual library project's build.gradle to fix the problem with

android {
   lintOptions {
      abortOnError false
   }
}

但是,我更喜歡頂級 build.gradle 腳本中的以下代碼:

However, I would prefer the following code in the top level build.gradle script:

subprojects {

    afterEvaluate {
        if (getPlugins().hasPlugin('android') ||
            getPlugins().hasPlugin('android-library')) {

            println name // for debugging

            android {
                lintOptions {
                    abortOnError false
                }
            }
        }

    }
}

條件語句確保只掛鉤到帶有 android 插件的項目.我只能使用 afterEvaluate 讓它工作.但是,我的構建仍然因 lint 錯誤而失敗.

The conditional statement makes sure to hook only into projects with an android plugin. I could only get this to work using afterEvaluate. However, my build is still failing on lint errors.

有沒有人有一個干凈的解決方案來從頂層注入這些設置?

Does anyone have have a clean solution to inject these settings from the top level?

更新:

重新排列子項目和 afterEvaluate 或使用 allprojects 仍然會出現以下相同類型的錯誤:

Rearranging the subprojects and afterEvaluate or using allprojects still gives the same following kind of error:

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 get the stack trace. Run with --info or --debug option to get more log output.
==============================================================================

BUILD FAILED

Total time: 40.528 secs

堆棧跟蹤:

7: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':3rdparty:OrmLiteQueryBuilder:lint'.
> [Ljava/util/HashMap$Entry;

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

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':3rdparty:OrmLiteQueryBuilder:lint'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:286)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
        at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
Caused by: java.lang.NoClassDefFoundError: [Ljava/util/HashMap$Entry;
        at com.android.build.gradle.internal.dsl.LintOptionsImpl$1.$getStaticMetaClass(LintOptionsImpl.groovy)
        at com.android.build.gradle.internal.dsl.LintOptionsImpl$1.<init>(LintOptionsImpl.groovy)
        at com.android.build.gradle.internal.dsl.LintOptionsImpl.syncTo(LintOptionsImpl.groovy:450)
        at com.android.build.gradle.internal.dsl.LintOptionsImpl$syncTo.call(Unknown Source)
        at com.android.build.gradle.tasks.Lint.lintAllVariants(Lint.groovy:105)
        at com.android.build.gradle.tasks.Lint$lintAllVariants.callCurrent(Unknown Source)
        at com.android.build.gradle.tasks.Lint.lint(Lint.groovy:63)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:530)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:513)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 13 more
Caused by: java.lang.ClassNotFoundException: java.util.HashMap$Entry
        ... 28 more

==============================================================================

BUILD FAILED

Total time: 2 mins 20.757 secs

我可以使用 -x lint 選項成功運行 gradle build,但想在不使用命令行選項的情況下進行構建.

I can run gradle build successfully with the -x lint option but want to build without using the commandline options.

推薦答案

我也遇到過類似的情況,但是我沒有直接修改DSL,而是調用了configure:

I too faced a similar situation, but instead of just modifying the DSL directly, I called configure on it instead:

configure(android.lintOptions) {
    abortOnError false
}

因此,我能夠為我想要的子項目禁用 abortOnError.最重要的是,您的 subproject 塊應如下所示:

As a result, I was able to disable abortOnError for my desired subprojects. Bottom line, your subproject block should look like this:

subprojects {

    afterEvaluate {
        if (getPlugins().hasPlugin('android') ||
            getPlugins().hasPlugin('android-library')) {

            println name // for debugging

            configure(android.lintOptions) {
                abortOnError false
            }
        }

    }
}

這篇關于如何從多項目目錄的頂層禁用 Android Gradle 插件中的 lint abortOnError的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: 久久成人一区 | 欧美精品中文字幕久久二区 | 国产精品久久久久久吹潮 | 91免费观看 | 国色天香综合网 | 国产一区二区欧美 | 紧缚调教一区二区三区视频 | 麻豆av一区二区三区久久 | 国产乱码精品一区二区三区五月婷 | 婷婷色在线播放 | 久久精品国产免费一区二区三区 | 日本精品一区二区 | 国产伦一区二区三区 | 91素人| 久久精品国产久精国产 | 午夜电影合集 | 日日操操 | 午夜国产 | 国产精品永久免费观看 | 天天操夜夜爽 | 国产精品久久久久久久久久久久久 | 国产成人精品区一区二区不卡 | 中文字幕日韩专区 | 午夜久草 | 亚洲欧美日韩电影 | 亚洲日本一区二区三区四区 | 久久久网| 欧美高清dvd | 久久久久久蜜桃一区二区 | 欧美一区二区三区国产精品 | 久久国产欧美日韩精品 | 国产91视频免费 | 久久久久黄| 日本欧美国产 | 97精品一区二区 | 久久精品免费观看 | 一区二区三区四区国产 | 国产亚洲二区 | 久久综合888| 亚洲a级 | 日一区二区 |