Le SDK Android peut-il fonctionner avec JDK 1.7?

Je viens d’installer le SDK Android R16 et JDK 7, mais je continue à recevoir l’erreur

Android requirejs le niveau de conformité du compilateur 5.0 ou 6.0. Trouvé ‘1.7’ à la place. Veuillez utiliser les outils Android> Corriger les propriétés du projet. ”

J’utilise certaines fonctionnalités du JRE 1.7, donc je ne peux pas simplement passer à 1.6. Comment puis-je résoudre ce problème?

Vous avez juste besoin de 1.6 présent sur votre PC. J’ai eu le même problème. Installez 1.6 JDK et ajoutez-le en tant que JDK connu, mais ne le sélectionnez pas pour votre projet.

Oui, vous pouvez utiliser Java 1.7 pour le développement Android. Vous devez conserver la compatibilité avec Java 6 pendant la compilation et seul le problème suivant est dû à l’algorithme par défaut modifié pour jarsigner.

Ceci est résolu dans la question de débordement de stack de la signature Android avec Ant (solution de contournement).

Mais il est déjà corrigé dans Ant . Donc, le support officiel sera directement dans le SDK Android bientôt.

Si vous voulez utiliser Maven pour la construction, la solution est dans Quel genre de failles existent pour la signature APK Android .

Mise à jour: la dernière version de Ant, Maven Plugin ou Gradle ne présente aucun problème avec Java 7 ou Java 8, ce qui est déjà obsolète.

À partir de l’ADT (22.6), il est possible d’utiliser les fonctionnalités de Java 1.7:

IMPORTANT:

Le try-with-resources nécessite une API 19 et supérieure:

Ajout de la prise en charge des fonctionnalités de langage Java 7, telles que les sockets multiples, les essais avec ressources et l’opérateur Diamond. Ces fonctionnalités nécessitent la version 19 ou supérieure des outils de génération. Try-with-resources requirejs minSdkVersion 19; le rest des nouvelles fonctionnalités linguistiques nécessite minSdkVersion 8 ou supérieur.

Cela vaut la peine de mentionner que si vous voulez comstackr un projet avec API 21 (Android 5.0 Lollipop), vous devez utiliser JDK 1.7.

L’API 21 ne fonctionnera plus avec JDK 1.6.