Recompile with -Xlint in Android studio

AndroidAndroid StudioGradle

Android Problem Overview


When I build my Android project in Android Studio, I get message:

Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

and

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

I would like to do what the message suggested, but how? How can I configure my Android studio to re-compile my project with -Xlint as the above message suggested? (I am using Android Studio 3.0.1)

Android Solutions


Solution 1 - Android

The message suggest you recompile with args -Xlint to get more warning details, add these code to build.gradle:

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

Then you can fix warnings by detailed messages.
For example, you can replace deprecated method with new method(there always been a new method since old method has been deprecated) .

However, sometimes we don't want change our code for some reasons, we just want get rid of compile warning, you can add @SuppressWarnings("deprecation") in front of the deprecated method.

Solution 2 - Android

You need to add the following inside your app level buld.graddle file

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

If for some reasons you need to continue using a deprecated API you can just suppress the warning. You could annotate the deprecated method with the

@SuppressWarnings("deprecation")

annotation.

post link

Solution 3 - Android

If you are facing issue in generating signed apk, you can try to do this in your build.gradle(app)

android {
    lintOptions {
        checkReleaseBuilds false
    }
}

Solution 4 - Android

It is some error in the project, maybe from XML files. Disabling lintOptions is not a correct solution. Find the error and fix the problem, to do this run below command in Android Studio Terminal

Windows > gradlew assembleDebug --stacktrace

MAC

> ./gradlew assembleDebug --stacktrace

Solution 5 - Android

You can manually run configured lint and other IDE inspections by selecting Analyze > Inspect Code. The results of the inspection appear in the Inspection Results window. see details here: https://developer.android.com/studio/write/lint#manuallyRunInspections

Solution 6 - Android

The message suggests to recompile with -Xlint flag in command-line, to get more issue details, but even if you do, the next log may ask for --stacktrace flag.

In build.gradle file, do something like:

import org.gradle.api.logging.configuration.ShowStacktrace
allprojects {
    // Same as passing --stacktrace option.
    gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS

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

>Note that the import may not be required (just imported to be clear).

Also as y4n9b0 said; Then you can use warnings' details to fix issues.
For example, you can replace deprecated method with new method (I mean, there must be a new-method, since old-method has been deprecated).

But sometimes for backward compatibility, we don't want change our code, and just want to get rid of compile-time warnings; simply add in front of the deprecated method:

@SuppressWarnings("deprecation")

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLeemView Question on Stackoverflow
Solution 1 - Androidy4n9b0View Answer on Stackoverflow
Solution 2 - AndroidVahag ChakhoyanView Answer on Stackoverflow
Solution 3 - AndroidCopsOnRoadView Answer on Stackoverflow
Solution 4 - AndroidNaveen Kumar MView Answer on Stackoverflow
Solution 5 - AndroidOmarView Answer on Stackoverflow
Solution 6 - AndroidTop-MasterView Answer on Stackoverflow