Android Studio无法找到有效的Jvm(与MAC OS相关)


Answers:


355

在finder中打开Android Studio的应用程序包,然后编辑Info.plist文件。更改密钥JVMversion。输入1.6+,而不是1.6 *。那对我有用!

干杯!

编辑:

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

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

安东尼奥·何塞(Antonio Jose)的答案是正确的。

谢谢aried3r!


15
我在Mac上将1.6 *更改为1.8 *
Titi Wangsa bin Damhore 2014年

5
要完成:这必须在Info.plist文件中完成
Henridv

7
尽管在旧版本的Android Studio中这是必需的,但不再建议这样做。请参阅官方声明 “请注意:请勿编辑Info.plist以选择其他版本。这不仅会破坏应用程序签名,还会破坏您安装的将来补丁更新。” 安东尼奥·何塞(Antonio Jose)的答案是正确的。
aried3r 2014年

6
根据Alonso和Shane的回答,Apple的官方软件包可以解决问题。无需摆弄!
贾斯汀·劳伦斯

6
Wow 1.6+为我工作。.他们更新后,我将下载一个新应用!
Neil Japhtha 2014年

174

只要在这里安装这个家伙

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

你应该很好


3
@ MickyRich89尝试以下操作:support.apple.com/kb/DL1572?
viewlocale=zh_CN&locale=zh_CN

4
我不知道这不是公认的或正确的答案。这基本上可以解决问题,并使您无法编辑任何文件。至少由于我的问题,优胜美地中缺少Java,导致我无法启动Android Studio。Intellij 14的修复方法相同。–
Andy

8
只需先从Oracle此处下载并安装最新的JVM:java.com/en/download/index.jsp ,然后从上面的链接下载并运行pkg,那么您将使用Java 8,并且仍然可以正常启动
Edward Tan

7
另外,总结一下,在Mac OSX 10.10上对我有用的是:1)从java.com/en/download安装了Java 8u25 2)安装了Alonso在其链接support.apple.com/kb/DL1572中
某处某人2014年

2
官方建议此答案(使用JRE 6运行Android Studio并使用JDK 7或8编译应用程序):tools.android.com/tech-docs/configuration/osx-jdk
Steffen

140

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

在下一版本的Android Studio中,如果未找到Java 6,但找到7(或更高版本),它将使用Java 6。由于改进了字体渲染,我们仍然建议使用Java 6运行Studio,但是例如,如果仅找到Java 8,则无需进行任何处理。

[结束更新]

Android Studio 1.0 RC3注意

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

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

稍作搜索后,我发现
在Mac IntelliJ IDEA 14.0.0 Web帮助/文件IDEA 上为Android Studio调整了VM选项。

但是,这没有运气。

幸运的是,我能够使用1.0 RC3发行说明中所述的环境变量在优胜美地上对其进行解析。

您还可以在其他位置放置使用环境变量以指向特定的覆盖文件:
STUDIO_VM_OPTIONS,哪个vmoptions文件使用
STUDIO_PROPERTIES,哪个属性文件使用
STUDIO_JDK,哪个JDK与Studio一起运行

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

这是我的命令行的launchctl命令。

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,请参见此处


我能够创建一个脚本。将该脚本添加到“登录”项中,但是每次我登录时都要求我运行脚本。我们可以在后台运行它吗?
twister_void 2014年

是否不建议在Android开发中使用JDK 7而不是8?
斯特芬2014年

4
您还可以通过open -a Android \ Studio从命令行运行AS,这将允许您创建一个非常简单的shell脚本,该脚本将环境设置为如上所述,然后启动AS。对我来说,这比弄到launchctl和AppleScript要简单得多。
tbm

3
实际上,有一种方法可以不运行AppleScript:编辑.bash_profile(如果此文件不存在,请创建一个新文件),放入export STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk,quit终端(或您用于编辑此文件的任何文本编辑器),运行Android Studio以及中提琴。经过OSX 10.10和Android 1.0.1测试
dumbfingers 2015年

1
@gio是的,您应该使用计算机中安装的版本。顺便说一句,您使用的是最新的Android Studio吗?因为不再需要该脚本了
Antonio Jose

21

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

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

$打开/ Applications / Android \ Studio.app

为我工作


export ANDROID_STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk为我做了把戏。谢谢!
jlhonora 2014年

2
谢谢。这与Android网站中提供的解决方案相同。这是链接:tools.android.com/tech-docs/configuration/osx-jdk
MondKin 2015年

1
这不是答案。官方的答案是从apple.com安装Java 6(JRE,而不是JDK,JDK可以是Oracle的)。这就是Android Studio网站明确说明的内容。
伊利亚2015年

14

Info.plist

我从

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

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

现在效果很好。

编辑:
按照上述hasternet和aried3r的官方声明,Antonio Jose的解决方案是正确的。

谢谢!


“请注意:请勿编辑Info.plist以选择其他版本。这不仅会破坏应用程序签名,还会破坏您安装的将来补丁更新。”
尼特什·戈尔

12

作为新手,我花了一些时间来了解如何以正确的方式解决此问题。在搜索并低估了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)保存为文件格式:应用程序。最后,打开系统设置→用户和组→登录项,然后添加刚创建的新应用程序。

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

woolaaaa…完成了。

参考文献:

安东尼奥·何塞的答案

ruario的答案


1
如果您只打开该应用程序就不需要重启,对吗?:)
yjsoon 2015年

是的。您也可以手动运行该应用程序。
nitesh goel 2015年

1
@niteshgoel,感谢您提供完整的全合一答案!正如您所指出的,我检查了是否不需要重新启动,只是一个注销-登录-登录周期。:)
khyox 2015年

这不是答案。官方的答案是从apple.com安装Java 6(JRE,而不是JDK,JDK可以是Oracle的)。这就是Android Studio网站明确说明的内容。
伊利亚2015年

9

我也在使用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以选择其他版本。这不仅会破坏应用程序签名,还会破坏您安装的将来补丁更新。”
尼特什·戈尔2015年

6

在Mac OS X Yosemite上,只需安装:

Java SE开发套件8

Java版本8更新25

全部为我工作!


Java SE开发工具包8对我来说足够了。谢谢!
Mathijs 2015年

5
  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技巧的信息


3

在Android Tools Project网站上,有一个很好的解释Mac OSX JDK Selection。它解决了我的问题。综上所述:

Android Studio需要两个不同的JDK:

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

这两个可以(通常是)相同,但是您可以单独配置它们。特别是在OSX上,它们通常会有所不同。

并针对优胜美地(Mac OSX 10.10)问题:

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

如果不是,请尝试通过如上所述设置STUDIO_JDK来运行Java 7或Java 8的最新版本。据报告,它已解决了其他问题(尽管您将获得上述Java 8的字体渲染。)


2

我更新到OS X El Capitan时已卸载Java。

重新安装Java之前和之后,请查看终端的屏幕快照。

在此处输入图片说明

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

在此处输入图片说明

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


1

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

以上方法有效,但不建议参阅RC3发行说明

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

看到Android Studio无法在Mac OSX(Mavericks)上加载JVM





1

在Mac OS X Yosemite上,只需安装:

Java SE开发套件8

Java版本8更新25

全部,也为我工作!就像盖夫说的那样,如此简单!


1

您可以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的答案相同的基础解决方案。它根据Android Studio 1.0 RC3发行说明设置STUDIO_JDK环境变量。此解决方案使用LaunchAgents目录而不是AppleScript来设置环境变量。因此,在订购和组织系统与环境变量的方式上,主要是有所不同。


1

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

您只需要做一些简单的事情,尽管它们并没有在Google网站上列出。

  1. 首先,您需要安装Java。这不是JDK,它是独立的。您可以从此链接获得如果您没有此功能,则可能会抛出一个错误,例如“未安装JVM ”。
  2. 其次,您需要Java JDK,我从此链接获得了JDK 7 确保选择Java SE Development Kit 7u75标题下的Mac OS X链接。如果您没有此功能,则可能会引发错误,例如“ no JDK安装 ”。
  3. 如果您尚未安装Android Studio,请执行此操作。但我敢肯定您现在已经完成了。

1

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

有一种方法可以不运行AppleScript:编辑.bash_profile(如果此文件不存在,请创建一个新文件,如@Gerard所建议,您可以source .bash_profile首次使用)。

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

  • 放置导出STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk

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

经过OSX 10.10和Android 1.0.1测试


1

Android Studio将从文件〜/ Library / Preferences / AndroidStudio / idea.properties中读取设置。我创建了这个文件,并且在其中具有我的jdk的路径:

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

无需编辑Info.plist!


0

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

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

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


0

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



0

我跑了这个坏男孩:

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

0

我正在处理同样的问题,并且我能正常工作。

您的jdk版本可能不正确。

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


0

对于那些无法创建在启动时启动的脚本的人,可以将.plist添加到LaunchAgents文件夹中。由于优胜美地决定取消使用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”,它也不会出现JVM错误,但它会返回正确的路径。也许有人对如何解决该问题有一些见识。



0

我以前已经卸载了Java 6并安装了Java 7,Android Studio可以正常工作,然后我升级了Android Studio,但遇到了每个人都遇到的问题。今天,我从Oracle卸载了Java 7并安装了Java 8。然后,我卸载Android Studio并安装了最新版本。现在一切都为我工作


-1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.