62
votes

Impossible de trouver la version Java groupée avec Flutter Doctor, après avoir mis à jour Android Studio Arctic Fox (2020.3.1) sur M1 Apple Silicon

Je suis confronté à un problème étrange. Avant de mettre à jour mon studio Android, tout s'est bien passé chez Flutter Doctor. Une fois que j'ai mis à jour Android Studio, lorsque j'exécute le médecin, il affiche "Impossible de trouver la version Java groupée". J'ai déjà téléchargé Java Installer et l'ai installé sur mon M1 Mac, mais après avoir redémarré, l'exécution de Flutter Doctor affiche toujours la même erreur. Ce qui est étrange, c'est que lorsque je désinstalle la version Arctic Fox et réinstalle l'ancienne version Android Studio, tout se passe bien lors de l'exécution du médecin. Comment puis-je résoudre ce problème?


2 commentaires

Quel $ java_home répertoire est utilisé? Vous voudrez peut-être vérifier que votre version Java est compatible avec Stable comme 2020.3.1 et M1 également


Voici la réponse de ce problème lorsque vous voulez toujours utiliser Android Studio Arctic Fox Version stackoverflow.com/a/68575967/9101876


9 Réponses :


0
votes

Copier le dossier / Applications / Android Studio Preview.App/contents/jre/contents à / Applications / Android Studio Preview.app/contents/jre/jdk/contents


2 commentaires

Cette solution de contournement pourrait viole le répertoire Java_Home par défaut, avez-vous déjà essayé dans votre local?


Vous pouvez vérifier ce code de script , votre_path / flutter / packages / flutter_tools / lib / src / androi‌ d / android_studio.dar‌ t , et trouver le code comme globals.fs.path.join (répertoire, '' Jre ',' Jdk ',' MONTIELS ',' HOME ') , alors vous pouvez obtenir le chemin que vous devez définir pour le "Doctor"



175
votes

La réponse est déjà affichée ici .

Pour l'utilisateur Mac:

set java_home chemin en utilisant l'article ci-dessous, puis après avoir appliqué ceci commande .

Après ce type de commande ci-dessous dans le terminal:

cd /Applications/Android\ Studio.app/Contents/jre

ln -s ../jre jdk

ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk

flutter doctor -v


6 commentaires

Il semble maintenant que Flutter nécessite Java 11 plutôt que Java 8 depuis la mise à jour du nouveau Studio Android Artic Fox


Je viens de passer par le processus avec le dernier Flutter et le dernier studio Android. La solution présentée ici élimine l'erreur "incapable de trouver la version Java", mais vous obtenez ensuite une classe ClassNotFoundException sur certaines classes d'analyse XML lorsque vous essayez d'accepter les licences. C'est parce qu'Android Studio est maintenant livré avec Java 1 qui n'a plus beaucoup de trucs JEE. La solution simple à tout cela consiste à définir votre variable Env Java_Home dans toute installation Java 8 que vous pourriez avoir autour, et cela corrige tout.


Travailler sur Mac OS


Fonctionne pour moi sans nuire à Java version préalable 11.0


Cela a fonctionné pour moi - Remarque J'ai dû installer manuellement le dernier JDK en premier (j'utilise MacOS Big Sur), il ne vient pas d'installation. Après cela, cela a parfaitement fonctionné.


A fonctionné pour moi avec Big Sur. Mais serait bien d'expliquer ce que fait cette commande ln -s ?



50
votes

Voici une réponse un peu plus complète pour tout ce que je devais faire pour que Android Studio soit installé sur mon M1.

  1. Installez Android Studio dans le dossier des applications

  2. Créez un lien symbolique à partir du dossier JRE dans un nouveau dossier jdk . (En raison de ce bug )

  3. flutter doctor
    
    1. Définissez la variable d'environnement java_home
    2. source ~/.zshrc
      
      export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"
      


5 commentaires

Les outils de ligne de commande sont importants pour accepter les packages


J'ai fait face à un problème similaire sur non M1 Mac. La solution ci-dessus fixe. On dirait que ce n'est pas lié à la puce M1. Ce hack simple a résolu le problème avec "File Bundle avec Java introuvable".


Il n'y a pas de répertoire JDK 'à l'intérieur / applications / Android Studio.App / Contents / JRE / `sur ma machine. Je suis également sur un M1 Mac. Une idée de ce qui pourrait manquer?


@Isuru, c'est bien, c'est le problème. L'écriture ln -s crée le répertoire jdk en tant que lien doux pointant vers le répertoire jre existant.


Cela fonctionne pour moi



6
votes

J'ai installé une nouvelle version de Java SDK, Flutter, Android Studio et exécuté la commande ci-dessous directement sur le terminal une par une pour corriger 'Impossible de trouver la version Java groupée. 'Issue.

  • CD / Applications / Android \ Studio.App/contents/jre

  • ln -s ../jre jdk

  • Ln -s "/ Library / Internet Plug-ins / javaappletplugin.plugin" jdk

  • Flutter Doctor -v

  • Maintenant, vous devriez pouvoir voir que l'erreur est disparue dans Flutter Doctor Description dans le terminal.


    0 commentaires

    1
    votes

    peut-être l'option la plus simple (Mac):

    • Accédez à: cd / applications / android \ studio.app/contents/jre
    • Créer un répertoire: mkdir jdk
    • Créez un lien souple: ln -s contenu jdk / contenu

    0 commentaires

    2
    votes

    J'ai eu la même erreur après avoir mis à jour Android Studio à 2020.3.1 Patch 3 (sur Mac).

    Après la mise à niveau du flottement de 2.2.2 à 2.5.3 Le problème a été résolu.

    J'ai également installé "Android SDK Command Line Tools". Son installation est expliquée ici: https://stackoverflow.com/a/68492909/6839552


    0 commentaires

    3
    votes

    Exécutez Flutter Doctor, s'il y a une erreur indiquant que le Java Bundled ne peut être trouvé (spécialement si vous avez Android Studio Version Fox), exécutez ces commandes si vous utilisez Mac:

  • CD / Applications / Android \ Studio.App/contents/jre

  • ln -s ../jre jdk

  • Ln -s "/ Library / Internet Plug-ins / javaappletplugin.plugin" jdk

  • Flutter Doctor


  • 0 commentaires

    2
    votes

    Cette solution est pour M1 Mac User

  • Trouvez votre version Java locale en tapant / usr / libexec / java_home -v . S'il n'existait pas, installez la dernière version de Java ARM ici
  • Définissez Java_Home Path (dans mon cas JDK-17.0.1.jdk) en tapant / usr / libexec / java_home /library/java/javavirtualmachines/jdk-17.0.1.jdk/contents/home
  • Tapez tous ces éléments dans le terminal
  • cd /Applications/Android\ Studio.app/Contents/jre
    ln -s ../jre jdk
    ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
    
    1. Exécutez enfin Flutter Doctor -v pour voir toutes les modifications de détails


    0 commentaires

    0
    votes

    La solution acceptée a fonctionné avec une légère modification pour moi. J'ai dû ajouter l'option -f (ou utiliser --force) pour le faire fonctionner (c'est parce que LN a échoué avec le fichier et j'ai continué à ignorer cela - l'existant Le fichier doit avoir un problème).

    cd /Applications/Android\ Studio.app/Contents/jre
    ln -s -f ../jre jdk
    ln -s -f "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
    
    flutter doctor -v
    

    j'exécute macOS monterey


    0 commentaires