Android N nécessite que l'EDI fonctionne avec Java 1.8 ou version ultérieure?


117

Ma XMLmise en page ne s'affiche pas avec ce message d'erreur. J'utilise déjà Java 8.

entrez la description de l'image ici

En utilisant également les derniers outils de construction de Gradle.

android {
    compileSdkVersion 'android-N'
    buildToolsVersion 24.0.0 rc1
    ...
}

Erreur XML -

entrez la description de l'image ici


2
Il existe toutes sortes de problèmes de rendu avec Android Studio. Je suggère que vous fournissiez un exemple reproductible minimal . Dans ce cas, cela inclurait le fichier de mise en page et l'erreur spécifique.
CommonsWare

@CommonsWare J'ai mis à jour l'image d'erreur XML. L'installation d'un JDK pris en charge m'a redirigé vers la configuration des étapes que j'ai déjà faites.
mjosh

1
J'ai dû changer pour buildToolsVersion '24 .0.0 rc1 ', la documentation manquait les guillemets.
Phyrum Tea

@PhyrumTea N'a pas fait disparaître l'erreur.
mjosh

1
Enfin, lorsque j'ai essayé de créer et d'exécuter le projet, il a échoué avec Directory cannot have its readable permission cleared for everybody. Apparemment, c'est un bogue connu et Google y travaille.
mjosh

Réponses:


187

J'ai eu la même erreur que vous décrivez mais sur OS X. Je sais que cela ne résoudra peut-être pas votre problème (car je ne connais pas l'équivalent pour Windows), mais comme ce n'est pas spécifique au système d'exploitation, je laisse la solution à n'importe quel collègue OS X là-bas. Modifiez le fichier /Applications/Android\ Studio.app/Contents/Info.plistet supprimez la version 1.6 (dans mon cas), vous pouvez placer 1.6+, 1.7+ ou 1.8, selon votre préférence. Le mien a fini comme ça

...
<key>JVMVersion</key>
<string>1.7+</string>
...

Sachez qu'il existe une incompatibilité avec le glisser-déposer avec les versions java 1.8_60 à 1.8_75 ( IDEA-146691 ) que l'EDI signalera une fois que vous aurez réussi à changer la version.

Pour les utilisateurs non terminaux

  1. Trouvez votre Android Studio.appdossier. Si c'est dans le dock, vous pouvez faire un clic droit dessus et choisirOptions > Show in Finder .
  2. Faites un clic droit dessus et choisissez Show package content.
  3. Accédez au fichier mentionné ( Contents/Info.plist).
  4. Modifiez le fichier avec votre éditeur de texte préféré.

11
Cela changera la machine virtuelle sur laquelle Android Studio s'exécute. Dans mon OSX, la valeur d'origine était: <key> JVMVersion </key> <string> 1.6 *, 1.7 +, 1.8 </string> Et la nouvelle valeur est: <key> JVMVersion </key> <string> 1.8 </ string>
santhyago

8
Ça marche! Merci pour cette solution. La question est: pourquoi Google veut que ses développeurs perdent son temps sur ces problèmes?
Kotik_o

3
Merci d'avoir résolu le manque de documentation de Google :). Je me demande pourquoi cette instruction n'est pas ici: developer.android.com/intl/pt-br/preview/setup-sdk.html#java8 (Ceci est le lien affiché sur android studio).
Totalys

7
Fonctionne très bien!! Malheureusement, lors de la mise à jour d'Android Studio (ce que je viens de faire avec la dernière version), il réinitialise le fichier Info.plist, je dois donc répéter les étapes pour changer ma JVMVersion: <key>JVMVersion</key> <string>1.8</string>So ennuyeux Android Studio!
Micro

3
Android Studio 2.2 utilise <string> 1.8 *, 1.8 + </string>.
jmnwong

147

Cliquez sur la lettre N, à côté de l'icône Android dans la fenêtre d'aperçu et sélectionnez le niveau d'API 23 ou inférieur. Cela devrait le résoudre.

Première rangée d'icônes dans la fenêtre rpeview


25
Mais je veux prévisualiser dans N pas dans l'API 23.
mjosh

3
J'ai rencontré le même problème sur mon mac. abaisser le niveau d'API de 24 à 23 a fonctionné pour moi.
salman

3
pas de réponse, veuillez suivre la réponse marquée comme droite
Pavneet_Singh

Ce n'est pas une réponse. C'est simplement ignorer l'environnement problématique.
enadun le

Bien fait. Oui, cela a résolu mon problème. Je vous remercie. :)
arango_86

63

Définir JDK_HOMEet JAVA_HOMEvariables d'environnement, dans mon cas C:\Program Files\Java\jdk1.8.0_60.

entrez la description de l'image ici

Vérifiez la version Java dans Help > About. Il doit afficher la version JRE que vous venez de définir.

entrez la description de l'image ici

Voilà, vous pouvez maintenant prévisualiser votre mise en page dans N.


1
J'ai fait ce que vous avez dit, mais quand j'aide -> à ce sujet, cela pointe toujours vers mon ancien jdk. Pourquoi donc?
The_Martian

1
J'ai JRE: 1,8 (environ). Cependant, je ne peux pas créer d'applications ciblant la v24. > compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.
Zapnologica

1
@The_Martian vous devez redémarrer votre ordinateur.
squeeish le

1
Sur Mac Os, je supprime mon ancienne version jdk. Après cela, Android Studio choisit la dernière version
lopez.mikhael

1
@ lopez.mikhael c'est en fait la seule chose qui a fonctionné pour moi à la fin. J'ai changé tous les paramètres possibles que j'ai pu trouver, tout configuré exactement comme je devais le faire, j'ai continué à recevoir l'erreur. En fin de compte, j'ai déplacé les anciens répertoires jdk vers un sous-répertoire que j'ai nommé old_jdks dans le dossier JavaVirtualMachine. Tout fonctionne très bien maintenant.
zgc7009

27

Pour les utilisateurs de Mac avec ce problème (j'utilise OS X 10.11.5 et Android Studio 2.1.2), voici comment vous pouvez le résoudre:

Actuellement, la version Mac d'Android Studio fonctionne avec Java 6 (pas nécessairement la même que la version JDK de l'application), car Java 6 a un meilleur rendu des polices que Java 7 et 8, et c'est apparemment plus important que le rendu de votre mise en page.

Tout d'abord, assurez-vous que JDK 8 est installé .

Exécutez ensuite les commandes suivantes:

$ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk
$ open /Applications/Android\ Studio.app/

Vous devrez peut-être changer le 91 dans jdk1.8.0_91.jdkune version différente. Vous pouvez voir quelles versions de JDK vous avez avec:

$ ls /Library/Java/JavaVirtualMachines/

Malheureusement, cette méthode nécessite d'ouvrir l'application à partir du terminal, mais vous pouvez toujours créer un script pour elle.

Plus d'informations

Éditer: Et si vous ne voulez vraiment pas l'ouvrir depuis le terminal:

  1. Créez un AppleScript avec le contenu: do shell script "export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk; open /Applications/Android\\ Studio.app/"
  2. Fichier> Enregistrer Choisir le format de fichier Application . Enregistrez-le quelque part.
  3. Si vous souhaitez modifier l'icône, cliquez ici.
  4. Faites glisser l'application sur votre tableau de bord si vous le souhaitez.

lorsque j'essaye d'exécuter le script que j'obtiens: error "sh: /usr/local/bin/studio: No such file or directory" number 127comment y remédier? quand je l'exécute à partir du terminal, cela fonctionne parfaitement
Daniele

@Daniele Désolé, j'ai oublié que j'ai créé un autre script shell pour cela. L'AppleScript doit avoir les mêmes commandes que ci-dessus. Voir ma réponse mise à jour.
wumbo

5

J'ai rencontré le même problème.

J'ai installé jdk1.6, jdk1.7, jdk1.8 et déployé Studio comme vous l'avez fait.

Ma solution est de désinstaller jdk1.6 et jdk1.7, ne laissez que jdk1.8

sudo rm -rf ${path to jdk1.6}
sudo rm -rf ${path to jdk1.7}

C'est tout.


est-ce sûr à faire
Micro

@MicroR Si vous les autres logiciels ne dépendiez pas de jdk1.6 et jdk1.7, je pense que c'est sûr.
youngwind

Cette solution a résolu le problème pour moi. Cette méthode de désinstallation est sûre et est celle recommandée par Oracle ( docs.oracle.com/javase/8/docs/technotes/guides/install/… )
Showpath

2

J'utilise Ubuntu 14.04 et je faisais face à une erreur similaire, à la différence que je n'ai pas de NDK. Ma solution était, après avoir configuré Java 8 dans la définition de projet, de redémarrer Android Studio, pas plus.

Vérifiez la version Java du système, dans la console "java -version", la sortie devrait indiquer quelque chose comme ceci

java version "1.8.0_91"

J'ai défini le JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.8.0_91.jdk / Contents / Home" STUDIO_SDK doit-il également être "/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home"?
mythicalcoder

@Maven théoriquement, vous pouvez définir la variable STUDIO_SDK qui sera le chemin du SDK pour exécuter Android Studio (comme indiqué dans les paramètres de configuration de Studio tools.android.com/tech-docs/configuration ). Cependant, dans mon cas, je n'ai pas défini cette variable et l'EDI fonctionne comme prévu.
Sergio A Guzmán

Vous avez raison. J'ai essayé différentes choses. C'était en effet le problème du 1.8 pas correctement lié. Cela a résolu le problème stackoverflow.com/a/35935433/2369867 . Merci.
mythicalcoder

2

Eu le même problème avec Ubunutu. Le problème n'était pas d'exécuter l'EDI avec Java8.

Je l'ai corrigé en mettant à jour le programme java par défaut du système d'exploitation, en utilisant:

sudo update-alternatives --config java

Et en choisissant le chemin Java8 approprié.


1

J'ai rencontré le problème "Android N nécessite que l'EDI fonctionne avec Java 1.8 ou version ultérieure." L'erreur a continué à apparaître malgré la définition C:\Program Files\Java\jdk1.8.0_92du JDK du projet dans File > Project Structure.

Je l'ai résolu en mettant à jour JAVA_HOME dans mes variables d'environnement de C:\Program Files\Java\jdk1.7.0_67àC:\Program Files\Java\jdk1.8.0_92 . Lorsque j'ai fait cela et redémarré Android Studio, le mode de conception est devenu disponible.

Système d'exploitation: Windows 10

Studio Android: 2.1.2


1

Je l'ai résolu de cette manière. (AS + MAC OX El Capitan)

  1. Mise à jour des outils SDK> Outils de la plate-forme Android SDK
  2. Allez dans Aide> Modifier les propriétés personnalisées> Une boîte de dialogue s'affiche (appuyez sur Oui) puis écrivez

    JVMVersion=1.8 

Fermez ensuite complètement Android Studio et rechargez le projet



0

Mon problème était que l'Android N était «partiellement installé».

Ma solution était d'aller dans - Préférences / Apparences et comportement / Paramètres système / SDK Android et vérifier le statut. S'il est "partiellement installé", vous devez le désinstaller puis le réinstaller. (Décochez la case et appuyez sur Appliquer; il sera désinstallé; vous pouvez ensuite cocher la case et l'installer à nouveau) A travaillé pour moi. Si vous passez à la version inférieure (comme 23), vous devez changer la variable buildToolsVersion en "23.0.0" dans le build.gradle.


1
Le mien dit toujours «partiellement installé» après la réinstallation.
Andrew

Le mien trop "partiellement installé" après la réinstallation. @Andrew avez-vous trouvé une solution par la suite?
mythicalcoder

@Maven pour moi, s'est avéré que mon problème était que je ne sélectionnais pas la bonne variante de construction lorsque j'ai essayé de créer l'application.
Andrew

0

J'étais confronté au même problème récemment. Essayez de changer le niveau d'aperçu de l'API sur 23 ou moins. Cela a fonctionné pour moi.


0

J'avais fait face au même problème. Veuillez vous assurer que vous effectuez le rendu de la mise en page XML pour la version compilée du SDK (ne doit pas être supérieure). Cela signifie que vous serez confronté à cela si vous compilez le code à l'aide de la version 23 du SDK ciblé et que vous essayez de rendre le XML dans la version 24 du SDK.


0

Il y a plusieurs choses à retenir lors de la configuration du STUDIO_JDK sur Mac OS:

  • par défaut, le Java 1.6 d'Apple est utilisé pour démarrer Android Studio
  • lorsque STUDIO_JDK est défini sur Java d'Oracle, il sera utilisé par Android Studio pour s'exécuter

La différence entre deux est que Java IMO d'Apple fournit un anticrénelage des polices plus agréable et meilleur dans l'EDI.

Une réponse ici fait référence à un bogue dans Android Studio concernant l'anticrénelage des polices. Le ticket est déjà fermé mais le rendu est toujours différent pour Apple Java et Oracle SDK (j'ai v1.8.0_102). Et le premier a toujours une meilleure perception que le précédent.


0

essayez d'utiliser dans le projet Java 1.8 - téléchargez la dernière version de JDK et installez-la (si JSK est absent)

Ajoutez ensuite à build.gradle ces lignes android {... // Configurez uniquement pour chaque module qui utilise les fonctionnalités du langage Java 8 // (soit dans son code source, soit // via des dépendances). compileOptions {sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8} // Pour les projets Kotlin kotlinOptions {jvmTarget = "1.8"}}


-1

machine: windows8 64bit dans mon cas, le jdk1.7 que j'avais installé était 32 bits, donc j'utilisais studio.exe (32bit) donc même lorsque j'ai téléchargé le nouveau jdk1.8 (64bit), l'instance de studio que j'utilisais (32bit) ne pouvait pas '' t le détecter, mais quand j'ai désinstallé l'ancien jdk et essayé de réexécuter studio.exe, on m'a dit d'installer un jdk 32 bits. j'ai donc exécuté studio64.exe et tout s'est bien déroulé. assurez-vous d'avoir le chemin correct dans vos variables d'environnement. bravo android N


-1

Assurez-vous d'avoir installé jdk pour x64 et non x84 lors du démarrage d'Android Studio (x64)

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.