Gradle is a build automation tool known for its flexibility to build software. A build automation tool is used to automate the creation of applications. The building process includes compiling, linking, and packaging the code. The process becomes more consistent with the help of build automation tools.
Open your gradle. properties file in Android Studio. Restart Android Studio for your changes to take effect. Click Sync Project with Gradle Files to sync your project.
This is what worked for me: (in your project's build.gradle)
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
Disclaimer: Even though this answer has more than 10 upvotes, it does not address the problem in the context of an Android project. However, Google finds this question in the context of non-Android projects. Thus, I keep this answer for those folks.
According to JavaCompile, the following seems to be solution:
compileJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
If you want it to have for the test cases, use compileTestJava
compileTestJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
For everyone using gradle.kts
use the following to match up with the simple build.gradle
file
build.gradle.kts
afterEvaluate {
tasks.withType(JavaCompile::class) {
options.compilerArgs.add("-Xlint:unchecked")
options.compilerArgs.add("-Xlint:deprecation")
}
}
build.gradle
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
Put this in your build.gradle file (root directory):
allprojects { // Projects
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
I had a different compilation argument to set. The following works for me.
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-XDignore.symbol.file"
options.bootClasspath = "$System.env.JAVA_HOME/jre/lib/rt.jar"
}
}
You have to set the boot classpath for JDK 1.8 and above for things like Unsafe and sun.swing.* classes. Fix the source code especially for the latter, because Jigsaw Java 9, the up and coming modularity implementation for the JRE, will finally make these methods inaccessible(!). Consider yourself warned.
For deprecation, you can now use this in gradle kotlin script, which is better than modifying compilerArgs
because it's type-safe:
tasks.withType<JavaCompile> {
options.isDeprecation = true
}
In higher version of Gradle I'd recommend using the new API:
tasks.withType<JavaCompile>().configureEach {
options.isDeprecation = true
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With