如何在使用Android Gradle Plugin进行编译时添加java编译器选项?

我有一个带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 Tasks和Gradle DSL doc的JavaCompile的解决方案 :

添加到build.gradle

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

在Gradle的配置阶段,应用程序变体为null ,并且所需的JavaCompile任务也不存在,因此我在执行阶段进行修改。