web-dev-qa-db-fra.com

Comment définir -source 1.7 dans Android Studio et Gradle

Le message d'erreur suivant s'affiche lorsque j'essaie de compiler mon projet dans Android Studio:

Gradle: error: diamond operator is not supported in -source 1.6

J'ai 1.7 défini comme cible dans toutes les préférences de projet que j'ai trouvées. De plus, le chemin affiché dans le SDK du projet sous 1.7 SDK est le chemin correct pour l'installation de Java 1.7.

Même quand je lance la version Java dans le terminal, il me dit que je cours sur Java 1.7.

J'ai essayé de définir la variable env Java_HOME à ceci:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

L'erreur ne disparaît pas. Comment puis-je éliminer l'erreur?

175
simekadam

La prise en charge de Java 7 a été ajoutée avec les outils de génération 19. Vous pouvez désormais utiliser des fonctionnalités telles que l’opérateur diamant, les captures multiples, les ressources d’essai avec, les chaînes de commutateurs, etc. Ajoutez ce qui suit à votre build.gradle.

Android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

Gradle 1.7+, Android Le plugin Gradle 0.6. + Est requis.

Notez que seules les ressources nécessitent minSdkVersion 19. Les autres fonctionnalités fonctionnent sur les plates-formes précédentes.

Lien vers Android Guide de l'utilisateur du plugin Gradle

Lien pour voir comment source et cible sont différentes

285
Sergii Pechenizkyi

Peut-être que ces réponses ci-dessus sont anciennes, mais avec le nouveau Android Studios 1, procédez comme suit pour afficher le module sous 1.7 (ou 1.6 si vous préférez). Cliquez sur Fichier -> Structure du projet. Sélectionnez le module que vous souhaitez exécuter, puis sous "Compatibilité de la source" et "Compatibilité de la cible", sélectionnez 1.7. Cliquez sur OK".

Project Structure screen of Android Studios 1

73
Simon

Vous pouvez le changer dans la nouvelle version Android studio (0.8.X).

Domaine-> Autres paramètres -> Paramètres par défaut -> Compilateur (développez-le en cliquant sur la flèche gauche) -> Java Compilateur -> Vous pouvez modifier la version du code intermédiaire du projet ici

enter image description here

14
San

Dernières Android Studio 1.4.

Cliquez sur Fichier-> Structure du projet-> Emplacement du SDK-> Emplacement du JDK.

Vous pouvez également définir la compatibilité de version de JDK de module individuelle en accédant au module (situé en dessous de l'emplacement du SDK), puis modifier la compatibilité source en conséquence. (Remarque, cela ne s'applique qu'au module Android).

8
Elye

Faites un clic droit sur votre projet> Ouvrir le paramétrage du module> Sélectionnez "Projet" dans la section "Paramétrage du projet".

Modifiez le Kit de développement logiciel (SDK) du projet par le dernier (éventuellement l'API 21) et le niveau de langue du projet par 7+

5
kunal

Actuellement, Android ne prend pas en charge Java 7, uniquement Java 6. Les nouvelles fonctionnalités de Java 7, telles que la syntaxe en losange, sont donc pas actuellement pris en charge. Trouver des sources pour supporter ceci n’est pas facile, mais j’ai pu constater que le moteur Dalvic était construit sur un sous-ensemble de Apache Harmony qui ne supportait jamais que Java jusqu’à la version 6. Et si vous cochez la configuration système requise pour le développement des applications Android, il est également indiqué qu'au moins la version 6 de JDK est nécessaire (bien que cela ne soit bien sûr pas une preuve réelle, c'est juste une indication). Et this dit à peu près la même chose que moi. Si je trouve quelque chose de plus substantiel, je l'ajouterai.

Edit: Il semble que Java 7 ait été ajouté depuis que j'ai écrit cette réponse pour la première fois; vérifiez la réponse par Sergii Pechenizkyi .

4
blalasaadri

Allez dans votre Gradle et cherchez sourceCompatibility et changez-le de 1.6 à 7 . Cela a fonctionné pour moi au moins.

Vous pouvez également aller dans les paramètres de votre module et définir la Compatibilité Source/Cible sur 1.7.

Fenêtre de configuration du module

Cela produira le code suivant dans votre Gradle:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
2
Feorice

Utilisez toujours la dernière version du SDK pour construire:

compileSdkVersion 23

Cela ne fait n'affecte pas le comportement d'exécution, mais vous donne les dernières fonctionnalités de programmation.

2
DenisKolodin