如何在使用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
任务也不存在,因此我在执行阶段进行修改。
- 在我的`gradle build`上遇到`org.gradle.api.ProjectConfigurationException`错误
- Android Studio – “无法解析符号”语法突出显示错误,尽管构建正常
- Android Studio 2.3错误:无法加载“com.google.common.collect.ImmutableSet”类
- 如何使用lib gdx导入IntelliJ中的通用补间引擎
- ProcessException:org.gradle.process.internal.ExecException以非零退出值2 结束
- Gradle Android Build Project错误:无法找到元数据资源
- 重复条目:gms / auth / api / signin / internal / zzf.class
- AndroidStudio升级到1.0(12月8日)后的NoClassDefFoundError
- 无法为参数org.gradle.api.Project找到方法android()