web-dev-qa-db-fra.com

Échec de la construction avec Gradle sur la ligne de commande avec un projet Android studio: erreur Xlint

Lorsque j'essaye de construire un projet Android avec gradle avec cette commande:

> gradlew clean build assembleRelease

Cela me donne cette erreur:

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

Je peux construire ce projet et créer l'APK dans Studio.

Existe-t-il un moyen de configurer Gradle pour effectuer une compilation en ignorant les notifications Xlint?

OU, puis-je utiliser d'autres paramètres pour effectuer la libération à partir de la ligne de commande avec gradle/gradlew?

54
am_technix

C'est un bel avertissement, pas une erreur. Pour voir le rapport complet sur les peluches, vous pouvez ajouter ces lignes à build.gradle:

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

Si vous voulez vraiment vous débarrasser de ces avertissements:

  1. N'utilisez pas d'API obsolète
  2. Utilisez @SuppressWarnings ("dépréciation")
82
shakalaca

Cela est assez évident d'après la réponse de @ shakalaca, mais si vous avez du code assez vieux pour obtenir l'avertissement de dépréciation, vous pouvez également avoir un code assez vieux pour utiliser des opérations non contrôlées, par ex. un List sans le type paramétré comme dans List<String>. Cela vous donnera un avertissement supplémentaire:

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

Vous pouvez simplement développer le bloc args du compilateur pour l'inclure également:

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