如何使用Android Gradle插件编译时添加Java编译器选项?

我有一个带有 和 的文件。build.gradledependencies { 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

如何将 添加到基础任务?关于Java编译选项的Gradle插件用户指南是没有帮助的。-Xlint:unchecked


答案 1

我尝试了@Konrad Jamrozik提出的解决方案,但由于我的项目中的风味,它不适用于我的项目。

鉴于我们只是打开了额外的警告,而不是显着改变编译器的运行方式,我不认为它将被添加到发布和调试版本中是一个问题。因此,这个答案有一个更干净的方法,可以适应口味:如何将-Xlint:unchecked添加到我基于Android Gradle的项目中?

在我的情况下,将其添加到受影响模块的build.gradle文件中:

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

答案 2

我根据 Gradle Plugin 用户指南关于操作任务Gradle DSL 文档(关于 JavaCompile)找到了以下解决方案:

搭:build.gradle

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

应用程序变体处于Gradle的配置阶段,所需的任务也不存在,因此我在执行阶段进行修改。nullJavaCompile


推荐