簡體   English   中英

如何在使用Android Gradle Plugin進行編譯時添加java編譯器選項?

[英]How to add java compiler options when compiling with Android Gradle Plugin?

我有一個帶dependencies { classpath 'com.android.tools.build:gradle:0.13.3'}build.gradle文件dependencies { classpath 'com.android.tools.build:gradle:0.13.3'} : build.gradle dependencies { classpath 'com.android.tools.build:gradle:0.13.3'}apply plugin: 'com.android.application'

當我進行調試構建時,我得到:

gradle clean assembleDebug
:myapp:preBuild
(...)
:myapp:compileDebugJava
Note: C:\path\to\MyClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

:myapp:preDexDebug
(...)
:myapp:assembleDebug

BUILD SUCCESSFUL

如何將-Xlint:unchecked添加到基礎任務? 關於Java編譯選項的Gradle Plugin用戶指南是無用的。

我嘗試了@Konrad Jamrozik提出的解決方案,但由於我的項目中的風味,它不能用於我的項目。

鑒於我們只是打開其他警告,而不是顯着改變編譯器運行方式的東西,我認為它不會被添加到發布和調試版本中。 因此,這個答案有一個更清晰的方法,適用於各種口味: 如何添加-Xlint:取消選中我的基於Android Gradle的項目?

在我的例子中,將其添加到受影響模塊的build.gradle文件中:

gradle.projectsEvaluated {
   tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }
}

我找到了以下基於Gradle Plugin User Guide on Manipulating TasksGradle DSL doc的JavaCompile的解決方案

添加到build.gradle

preBuild {
    doFirst {
        JavaCompile jc = android.applicationVariants.find { it.name == 'debug' }.javaCompile
        jc.options.compilerArgs = ["-Xlint:unchecked"]
    }
}

在Gradle的配置階段,應用程序變體為null ,並且所需的JavaCompile任務也不存在,因此我在執行階段進行修改。

將其添加到build.gradle文件:

android { // <---
   tasks.withType(JavaCompile) {
      configure(options) {
         options.encoding = 'UTF-8'
         options.debug = true
         options.failOnError = true
         options.warnings = true
         options.compilerArgs << '-Xlint:deprecation' << '-Xlint:unchecked'
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM