Comment append -Xlint: décoché sur mon projet Android Gradle?

J’ai essayé d’append ce qui suit au fichier racine build.gradle :

 subprojects { gradle.projectsEvaluated { tasks.withType(Comstack) { options.comstackrArgs << "-Xlint:unchecked -Xlint:deprecation" } } } 

Mais je comprends ça:

 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':Libraries:ActionBarSherlock:comstackRelease'. > invalid flag: -Xlint:unchecked -Xlint:deprecation 

Qu’est-ce que je fais mal?

C’est ce qui a fonctionné pour moi: (dans le build.gradle de votre projet)

 allprojects { gradle.projectsEvaluated { tasks.withType(JavaComstack) { options.comstackrArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } } 

Disclaimer: Même si cette réponse a plus de 10 commentaires, elle ne résout pas le problème dans le contexte d’un projet Android . Cependant, Google trouve cette question dans le contexte de projets non-Android. Donc, je garde cette réponse pour ces gars-là.

Selon JavaComstack , la solution semble être la suivante:

 comstackJava { options.encoding = 'UTF-8' options.comstackrArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } 

Si vous le voulez pour les cas de test, utilisez comstackTestJava

 comstackTestJava { options.encoding = 'UTF-8' options.comstackrArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } 

J’avais un argument de compilation différent à définir. Ce qui suit fonctionne pour moi

 gradle.projectsEvaluated { tasks.withType(JavaComstack) { options.comstackrArgs << "-XDignore.symbol.file" options.bootClasspath = "$System.env.JAVA_HOME/jre/lib/rt.jar" } } 

Vous devez définir le chemin d'access aux classes de démarrage pour JDK 1.8 et versions ultérieures pour des éléments tels que Unsafe et sun.swing. * Classes. Fixez le code source spécialement pour ce dernier, car Jigsaw Java 9, l'implémentation de la modularité à venir pour JRE, rendra finalement ces méthodes inaccessibles (!). Considérez-vous comme averti.