【问题标题】:Android Studio was unable to find a valid Jvm (Related to MAC OS)Android Studio 无法找到有效的 Jvm(与 MAC OS 相关)
【发布时间】:2015-02-06 18:34:40
【问题描述】:

我无法在 Mac OS (10.10.1 - Yosemite) 上启动我的 Android Studio 进行 Android 开发

【问题讨论】:

    标签: java android macos android-studio ide


    【解决方案1】:

    在finder中打开Android Studio的应用程序包,编辑Info.plist文件。更改关键 JVM 版本。放 1.6+ 而不是 1.6*。这对我有用!。

    干杯!

    已编辑:

    虽然这在旧版本的 Android Studio 中是必需的,但不再建议这样做。见官方声明

    “请注意:不要编辑 Info.plist 来选择不同的版本。这不仅会破坏应用程序签名,还会破坏您安装的未来补丁更新。”

    Antonio Jose 的answer 是正确的。

    感谢aried3r!

    【讨论】:

    • 我在我的 mac 上将 1.6* 更改为 1.8*
    • 完成:这必须在 Info.plist 文件中完成
    • 虽然这在旧版本的 Android Studio 中是必需的,但不再推荐。请参阅the official statement “请注意:不要编辑 Info.plist 来选择不同的版本。这不仅会破坏应用程序签名,还会破坏您安装的未来补丁更新。” Antonio Jose 的回答是正确的。
    • 根据 Alonso 和 Shane 的回答,Apple 的官方软件包起到了作用。无需摆弄!
    • 哇 1.6+ 对我有用.. 更新后我会下载一个新应用程序!
    【解决方案2】:

    只需在此处安装此人

    http://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US

    你应该很好。

    【讨论】:

    【解决方案3】:

    [更新]
    这已在 Android Studio 1.1 中修复 https://issuetracker.google.com/issues/37015035

    在 Android Studio 的下一个版本中,如果没有找到 java 6 但找到了 7(或更高版本),那么它将使用它。由于字体渲染得到改进,我们仍然建议使用 Java 6 运行 studio,但如果仅找到 Java 8,则无需解决任何问题。

    [结束更新]

    来自Android Studio 1.0 RC3 Notes

    从 RC 3 开始,我们有了更好的机制来自定义所有三个平台上的启动器的属性。您不应编辑 IDE 安装目录中的任何文件。相反,您可以通过在以下目录中创建自己的 .properties 或 .vmoptions 文件来自定义属性。 (这在以前的某些平台上是可能的,但它需要您复制和更改文件的全部内容。随着最新的更改,这些属性现在是附加的,这样您就可以只设置您关心的属性,其余的将使用 IDE 安装中的默认值)。

    但是没有关于选项是什么的解释。

    经过一番搜索,我找到了这个
    Adjusting VM Options for Android Studio on Mac
    IntelliJ IDEA 14.0.0 Web Help/File IDEA.Properties

    但是没有运气。

    幸运的是,我能够使用 1.0 RC3 发行说明中所述的环境变量在 Yosemite 上解决它。

    您还可以使用环境变量来指向其他地方的特定覆盖文件:
    STUDIO_VM_OPTIONS,使用哪个 vmoptions 文件
    STUDIO_PROPERTIES,使用哪个属性文件
    STUDIO_JDK,使用哪个 JDK 来运行 studio

    这有点棘手,因为 Android Studio 不是命令行应用程序,所以我必须在登录时使用 AppleScript 命令来设置环境变量。更多信息here

    这是我的命令行启动命令。

    launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk
    

    这是我的 AppleScript(记得将它保存为应用程序)

    do shell script "launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk"
    

    关于launchctl,见here

    【讨论】:

    • 我可以创建一个脚本。将该脚本添加到登录项,但每次我登录时都要求我运行脚本。我们可以在后台运行它吗?
    • Android开发不建议使用JDK 7而不是8吗?
    • 你也可以从命令行通过 open -a Android\ Studio 运行 AS,这将允许你创建一个非常简单的 shell 脚本,如上设置环境然后启动 AS。对我来说,这比使用 launchctl 和 AppleScript 要简单得多。
    • 其实有一种不用运行AppleScript的方法:编辑.bash_profile(如果此文件不存在,请新建一个),输入export STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk,退出终端(或任何文本编辑器你'用于编辑此文件),运行 Android Studio 和 viola。通过 OSX 10.10 和 Android 1.0.1 测试
    • @gio 是的,您应该使用您机器中安装的版本。顺便说一句,您使用的是最新的 Android Studio 吗?因为不再需要这个脚本了
    【解决方案4】:

    请注意,最后一个变量允许您在 OSX 上运行带有 Java 7 的 Android Studio(通常从 Info.plist 中指定的版本中选择 Java 6):

    $ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk

    $ 打开 /Applications/Android\ Studio.app

    为我工作

    【讨论】:

    • export ANDROID_STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk 对我有用。谢谢!
    • 谢谢。这与 Android 网站中提供的解决方案相同。这是链接:tools.android.com/tech-docs/configuration/osx-jdk
    • 这不是答案。官方答案是从 apple.com 安装 Java 6(JRE,而不是 JDK——JDK 可以是 Oracle 的)。这就是 Android Studio 网站明确表示的内容。
    【解决方案5】:

    Info.plist改这个键

    我变了

    <key>JVMVersion</key>
    <string>1.6*</string>
    

    <key>JVMVersion</key>
    <string>1.8*</string>
    

    现在效果很好..

    已编辑:
    根据上面hasternet和aried3r的官方说法,Antonio Jose的解决方案是正确的。

    谢谢!

    【讨论】:

    • "请注意:不要编辑 Info.plist 来选择不同的版本。这不仅会破坏应用程序签名,还会破坏您安装的未来补丁更新。"
    【解决方案6】:

    作为一个新手用户,我花了一段时间才明白如何以正确的方式解决这个问题。在搜索并了解了许多关于 SO 的答案后,我得出了解决问题所需遵循的以下步骤。

    请注意:

    虽然最简单的解决方案是更新 android studio 的 Info.plist 。但不建议这样做,也不是修复它的正确方法。

    官方声明-“请注意:不要编辑 Info.plist 来选择不同的版本。这不仅会破坏应用程序签名,还会破坏您安装的未来补丁更新。”

    第一个解决方案:如果您从命令行运行 Android Studio,您可以将这两行添加到您的 .bash_profile

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

    从下次打开终端开始,您的工作室将自动启动。

    第二种解决方案:如果您想从 UI 运行 Android Studio(通过点击图标),请按照以下步骤操作:

    1. 在mac上打开脚本编辑器(可以在spotlight中找到)
    2. 复制下一行

      执行shell脚本“launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk”

    注意:-根据你的版本更改jdk版本。要检查您使用的是哪个版本,请打开终端并运行以下命令

    java -version
    

    3.现在将 (⌘+s) 保存为文件格式:应用程序。最后打开 System Settings → Users & Groups → Login Items 并添加您刚刚创建的新应用程序。

    1. 注销并重新登录,或者您也可以手动运行该应用程序..

    woolaaaa...完成了。

    参考资料:

    Antonio Jose's answer

    ruario's answer

    【讨论】:

    • 只要打开那个应用程序就不需要重启了,对吧? :)
    • 是的,挑衅。您也可以手动运行该应用程序。
    • @niteshgoel,感谢您提供完整的多合一答案!正如您所指出的,我检查了不需要重新启动,只是一个注销登录周期。 :)
    • 这不是答案。官方答案是从 apple.com 安装 Java 6(JRE,而不是 JDK——JDK 可以是 Oracle 的)。这就是 Android Studio 网站明确表示的内容。
    【解决方案7】:

    我也在使用 Mac OS X 10.10。并解决这个问题。

    1. 打开 Android Studio 应用程序包内容(右键单击 Application 文件夹中的 Android Studio 图标)
    2. 打开文件 Infor.plist
    3. 搜索和替换:

      <key> JVM version</key>
      <string>1.6*</string>
      

    替换为:

        <key> JVM version</key>
        <string>1.6+</string>
    

    就是这样!

    【讨论】:

    • "请注意:不要编辑 Info.plist 来选择不同的版本。这不仅会破坏应用程序签名,还会破坏您安装的未来补丁更新。"
    【解决方案8】:

    在 Mac OS X Yosemite 上只需安装:

    Java SE 开发工具包 8

    Java 版本 8 更新 25

    一切都好,为我工作!

    【讨论】:

    • Java SE Development Kit 8 对我来说已经足够了。谢谢!
    【解决方案9】:
    1. 安装最新的 JDK(当前为 8u102)
    2. 设置环境变量STUDIO_JDKjava_home 输出 Java 主目录,sed 剥离两个文件夹以获取 jdk 目录)

      launchctl setenv STUDIO_JDK `/usr/libexec/java_home -version 1.8 | sed 's/\/Contents\/Home//g'`

    3. 像往常一样启动 Android Studio

    每次重启时设置 STUDIO_JDK

    上述步骤仅适用于当前会话。以下是如何在 /Library/LaunchDaemons 中创建一个在每次启动时运行上述命令的 plist 文件:

    sudo defaults write /Library/LaunchDaemons/com.google.studiojdk Label STUDIO_JDK
    sudo defaults write /Library/LaunchDaemons/com.google.studiojdk ProgramArguments -array /bin/launchctl setenv STUDIO_JDK `/usr/libexec/java_home | sed 's/\/Contents\/Home//g'`
    sudo defaults write /Library/LaunchDaemons/com.google.studiojdk RunAtLoad -bool TRUE
    

    感谢http://www.dowdandassociates.com/blog/content/howto-set-an-environment-variable-in-mac-os-x-launchd-plist/,了解 plist 技巧

    【讨论】:

      【解决方案10】:

      在 Android 工具项目网站上,有一个很好的解释 Mac OSX JDK Selection。它解决了我的问题。总结:

      Android Studio 需要两个不同的 JDK:

      • IDE 本身运行的 Java 版本。
      • 用于获取 Java 编译器的 JDK 版本

      这两个可以(通常是)相同,但您可以配置 他们分别。特别是在 OSX 上,它们通常是 不同。

      对于 Yosemite (Mac OSX 10.10) 问题:

      首先,请确保您拥有最新版本的 Java 6 已安装;在某些情况下已经解决了问题: http://support.apple.com/kb/DL1572

      如果没有,请尝试运行 Java 7 或 Java 8 的最新版本 如上所述设置 STUDIO_JDK。据报道已修复 其他问题(尽管您将获得显示的字体渲染 Java 8 以上。)

      【讨论】:

        【解决方案11】:

        当我更新到 OS X El Capitan 时,Java 被卸载。

        查看我重新安装 Java 前后的终端屏幕截图。

        要重新安装 Java,我点击了 Android Studio 对话框中提供的此链接。

        重新安装 Java 安装后,Android Studio 再次运行。

        【讨论】:

          【解决方案12】:

          编辑包中 android studio 的 Info.plist 文件,使其使用 1.7 或您安装的任何 JVMVersion。将 JVMVersion 更改为 1.6+ 而不是 1.6* 作为上面回答的 hasternet 应该也可以工作。

          以上方法有效但不推荐见RC3 Release Notes

          从 RC 3 开始,我们有一个更好的机制来自定义属性 所有三个平台上的发射器。 您不应该在其中编辑任何文件 IDE 安装目录。相反,您可以自定义 通过在 以下目录。 (这在某些平台上是可能的 之前,但它需要您复制和更改整个内容 文件。随着最新的变化,这些属性现在是附加的 相反,您可以只设置您关心的属性,并且 其余的将使用 IDE 安装中的默认值)。

          Android Studio failed to load JVM on Mac OSX (Mavericks)

          【讨论】:

          【解决方案13】:

          我有同样的问题并用这种方式解决:

          您应该从 Apple 官方页面安装 Java。

          http://support.apple.com/kb/DL1572

          【讨论】:

            【解决方案14】:

            这对我有用,很简单,只需导出环境变量。但请确保您首先拥有有效的 JVM。

            https://code.google.com/p/android/issues/detail?id=82378

            【讨论】:

              【解决方案15】:

              在 Mac OS X Yosemite 上只需安装:

              Java SE 开发工具包 8

              Java 版本 8 更新 25

              没关系,也为我工作!就像gehev说的,很简单!

              【讨论】:

                【解决方案16】:

                您可以使用用户的启动代理来实施STUDIO_JDK 解决方案。这涉及在您的 LaunchAgents 目录中创建一个 plist 文件,位于 ~/Library/LaunchAgents

                创建一个新文件~/Library/LaunchAgents/UNIQUE_KEY.plist,其中 UNIQUE_KEY 只是一个标识符。我使用 com.用户名.androidstudio。

                将以下文本复制到新的 plist 文件中,并按照以下说明进行修改。

                <?xml version="1.0" encoding="UTF-8"?>
                <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
                <plist version="1.0">
                <dict>
                   <key>Label</key>
                   <string>UNIQUE_KEY</string>
                   <key>ProgramArguments</key>
                   <array>
                      <string>sh</string>
                      <string>-c</string>
                      <string>launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk</string>
                   </array>
                   <key>RunAtLoad</key>
                   <true/>
                </dict>
                </plist>
                

                您需要进行两项修改:

                1. 更改 UNIQUE_KEY 以匹配您的文件名(不带 .plist 扩展名)。
                2. 验证您的 JDK 路径是否正确,并在必要时进行更改。我在这个例子中使用的是 7u71。

                这是与Antonio Jose's answer 相同的底层解决方案。它根据 Android Studio 版本1.0 RC3 release notes 设置 STUDIO_JDK 环境变量。此解决方案使用 LaunchAgents 目录而不是 AppleScript 来设置环境变量。因此,这主要取决于您的排序和组织系统和环境变量的方式。

                【讨论】:

                  【解决方案17】:

                  不要编辑 plist。 几个月前以及今天我第一次安装 Android Studio 时,这些说明对我有用。 (2015 年 1 月 21 日)

                  您需要做的只是一些简单的事情,尽管它们并未真正列在 Google 的网站上。

                  1. 首先您需要安装 Java。这不是JDK,它是独立的。你可以从this link. 得到它。如果你没有这个,它可能会抛出一个错误,比如“没有安装 JVM”。
                  2. 第二个你需要 Java JDK,我从 this link. 获得 JDK 7 确保选择 Java SE Development Kit 7u75 标题下的 Mac OS X 链接。如果你没有这个,它可能会抛出一个错误,比如“没有安装 JDK”。
                  3. 如果您尚未安装 Android Studio,请执行此操作。但我相信你现在已经做到了。

                  【讨论】:

                    【解决方案18】:

                    正如@Gerard 建议的那样,我将我的原始评论 (https://stackoverflow.com/a/27370525/763459) 总结为答案,希望它可以帮助其他对此问题感到恼火的人。

                    有一种不运行 AppleScript 的方法: 编辑.bash_profile(如果这个文件不存在,请新建一个,按照@Gerard的建议,你可以第一次使用source .bash_profile)。

                    • 安装旧版 Java(可能需要)http://support.apple.com/kb/DL1572

                    • Put export STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk

                    • 然后退出终端(或您用来编辑此文件的任何文本编辑器),运行 Android Studio 和 viola

                    通过 OSX 10.10 和 Android 1.0.1 测试

                    【讨论】:

                      【解决方案19】:

                      Android Studio 将从文件 ~/Library/Preferences/AndroidStudio/idea.properties 中读取设置。我创建了这个文件,其中包含我的 jdk 的路径:

                      STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk

                      无需编辑 Info.plist!

                      【讨论】:

                        【解决方案20】:

                        “在 Mac OS 上,使用 Java Runtime Environment (JRE) 6 运行 Android Studio 以优化字体渲染。然后您可以将项目配置为使用 Java Development Kit (JDK) 6 或 JDK 7。”

                        这已在 Mac OS X 的系统要求下的 http://developer.android.com/sdk/index.html 中列出。

                        按照 Alonso C. Licks 从 Apple 安装 Java 6(不是 JDK)后,您应该能够打开 Android Studio 并根据需要重新配置,而无需在终端、info.plist 文件或其他库。

                        【讨论】:

                          【解决方案21】:

                          我已经下载了 Intellij Idea。当我尝试安装 Intellij 时,出现一个弹出窗口,提示我的 Mac 缺少 Java RE,您要下载它吗?使用 Intellij 下载丢失的包后,我可以打开 Android Studio。

                          【讨论】:

                            【解决方案22】:

                            我通过将 Info.plist 文件中的 JVM 版本更改为 1.7* 解决了这个问题

                            【讨论】:

                              【解决方案23】:

                              我跑了这个坏男孩:

                              launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/
                              

                              【讨论】:

                                【解决方案24】:

                                我正在处理同样的问题,我得到了它的工作。

                                可能是你的jdk版本不对。

                                现在我安装了jdk1.8,现在可以了。

                                【讨论】:

                                  【解决方案25】:

                                  对于那些在创建启动时启动的脚本时遇到问题的人,作为替代方法,您可以将此 .plist 添加到您的 LaunchAgents 文件夹中。这可能是向系统添加环境变量的更合适的方式,因为 Yosemite 决定取消 launchd.conf。由于 LaunchAgents 文件夹的性质,这也应该适用于用户帐户,但我尚未对此进行测试。

                                  为此,请创建一个具有以下名称和路径的 .plist 文件:

                                  /Library/LaunchAgents/setenv.STUDIO_JDK.plist
                                  

                                  和内容:

                                  <?xml version="1.0" encoding="UTF-8"?>
                                  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
                                  <plist version="1.0">
                                      <dict>
                                          <key>Label</key>
                                              <string>setenv.STUDIO_JDK</string>
                                          <key>ProgramArguments</key>
                                              <array>
                                                  <string>sh</string>
                                                  <string>-c</string>
                                                  <string>
                                                      launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk
                                                  </string>
                                              </array>
                                          <key>RunAtLoad</key>
                                              <true/>
                                          <key>ServiceIPC</key>
                                              <false/>
                                          <key>LaunchOnlyOnce</key>
                                              <true/>
                                          <key>KeepAlive</key>
                                              <false/>
                                      </dict>
                                  </plist>
                                  

                                  然后通过在终端中运行以下命令来更改文件属性:

                                  sudo chmod 644 /Library/LaunchAgents/setenv.STUDIO_JDK.plist
                                  
                                  sudo chown root /Library/LaunchAgents/setenv.STUDIO_JDK.plist
                                  
                                  sudo chgrp wheel /Library/LaunchAgents/setenv.STUDIO_JDK.plist
                                  

                                  注意事项:

                                  1) 您可能需要更改“jdk1.8.0_25.jdk”以匹配您计算机上的版本。

                                  2) 我尝试使用“jdk1.8.*.jdk”来尝试解释不同的 Java * 版本,但是当我打开 Android Studio 时,即使运行“echo $STUDIO_JDK”,我也会收到 no JVM 错误它返回正确的路径。也许有人对如何解决这个问题有一些见解。

                                  【讨论】:

                                    【解决方案26】:

                                    尝试从 Apple 支持页面下载 Java:http://support.apple.com/kb/DL1572 如果这对您不起作用或无法加载(非常常见的问题),只需点击此链接下载并安装 Java您需要的版本:

                                    http://support.apple.com/downloads/DL1572/en_US/JavaForOSX2014-001.dmg

                                    就是这样。

                                    【讨论】:

                                      【解决方案27】:

                                      我之前卸载了 Java 6 并安装了 Java 7,Android Studio 工作正常,然后我升级了 Android Studio,我遇到了每个人都遇到的问题。今天,我从 Oracle 卸载了 Java 7 并安装了 Java 8。然后我卸载了 Android Studio 并安装了最新的。现在一切都对我有用

                                      【讨论】:

                                        【解决方案28】:

                                        我可以通过编辑 info.plist 将 16* 更改为 16+ 来使其工作。尝试使用推荐的方法,但失败了。

                                        【讨论】:

                                          猜你喜欢
                                          • 2015-07-25
                                          • 2015-03-08
                                          • 2019-03-28
                                          • 2014-01-22
                                          • 2015-03-09
                                          • 2020-05-16
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多