久久久久久久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 庫的傳遞依賴)
主站蜘蛛池模板: 四虎影院在线免费观看 | 51ⅴ精品国产91久久久久久 | 日韩免费视频 | 亚洲www啪成人一区二区麻豆 | 亚洲毛片网站 | 自拍偷拍第1页 | 国产精品视频观看 | 99国产精品久久久久老师 | 国产激情视频网站 | www国产成人免费观看视频,深夜成人网 | 天天看天天爽 | 久艹网站| 在线第一页 | 99re99| 中文字幕一区二区三区四区五区 | 天天草天天操 | 国产精品夜间视频香蕉 | 99免费精品 | 精品久久久久久国产 | 国产精品久久久亚洲 | 亚洲网站在线播放 | 精品久久久久香蕉网 | 日韩av第一页 | 久久这里只有精品首页 | 亚洲性视频网站 | 久热久| 亚洲啊v在线| 天天草草草 | 国产视频一视频二 | 一区二区三区四区av | 久久久久久免费免费 | 亚洲品质自拍视频网站 | 日韩av在线中文字幕 | 一区二区三区视频 | 日本a∨精品中文字幕在线 亚洲91视频 | 天天拍天天操 | 精品9999| 精品综合| 999久久久精品 | 亚洲精品一区二区在线观看 | 日韩在线成人 |