177 votes

Comment définir - source 1,7 en Studio Android et Gradle

Salut, je suis d'erreur suivant lorsque vous essayez de compiler mon projet dans Android Studio.

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

Veuillez noter que j'ai 1.7 définir comme cible dans toutes les préférences du projet, j'ai trouvé. Aussi le chemin affiché dans le projet du SDK moins de 1,7 SDK est le chemin d'accès correct à java 1.7 installation. Même quand je lance java -version dans le terminal, il me dit que je suis en cours d'exécution sur java 1.7.. J'ai essayé de mettre JAVA_HOME env variable à ceci:

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

Aussi pas de changement..

Des conseils?

287voto

Sergii Pechenizkyi Points 4906

Java 7 support a été ajouté à construire des outils de 19. Vous pouvez utiliser d'autres fonctions comme le diamant de l'opérateur, multi-catch, essayez-avec-des ressources, des chaînes de caractères dans les interrupteurs, etc. Ajouter 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 de 1,7+, Android plugin gradle 0.6.+ sont requis.

Notez que seuls les essayer avec des ressources nécessitent minSdkVersion 19. D'autres caractéristiques fonctionne sur les plates-formes précédentes.

Lien pour android plugin gradle guide de l'utilisateur

Lien pour voir comment la source vs cible sont différents

14voto

San Points 1033

Vous pouvez le modifier dans le nouveau studio Android version(0.8.X)

Fichier-> autres paramètres-> les paramètres par défaut-> compilateur (développez-le en cliquant sur la flèche vers la gauche)-> compilateur Java->, vous pouvez modifier la version bytecode projet ici

enter image description here

4voto

blalasaadri Points 2209

À ce jour, Android ne prend pas en charge Java 7, seule la version 6 de Java. Nouvelles fonctionnalités de Java 7, telles que le diamant de la syntaxe ne sont donc pas pris en charge actuellement. Trouver des sources pour appuyer ce n'est pas facile, mais j'ai pu trouver que le Dalvic moteur est construit sur un sous-ensemble de Apache Harmonie qui n'a jamais pris en charge Java vers la version 6. Et si vous vérifiez les exigences du système pour le développement d'applications Android il indique également qu'au moins JDK 6 est nécessaire (même si bien sûr, cela n'est pas vraiment de preuve, juste une indication). Et ce dit à peu près la même que je l'ai. Si je trouve quelque chose de plus substancial, je vais l'ajouter.

Edit: Il semble Java 7 a été pris en charge depuis l'origine, j'avais écrit cette réponse, pour vérifier la réponse par Sergii Pechenizkyi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X