如何在Mac上使用更新的JRE或JDK运行Android Studio?

问题描述:

我试图用JDK 13运行Android Studio,只是因为我认为它必须比其随附的JDK 8运行得更快.

I’m trying to run Android Studio with JDK 13 just because I feel like it must run faster than the JDK 8 that comes embedded with it.

根据文档(我从

According to the documentation (which I found from umang shukla's answer), we can force Android Studio to use something other than the embedded JDK by setting STUDIO_JDK.

STUDIO_JDK

设置用于运行Studio的JDK的位置.启动Android Studio时,它会检查STUDIO_JDKJDK_HOMEJAVA_HOME环境变量按此顺序.

Sets the location of the JDK with which to run Studio. When you launch Android Studio, it checks the STUDIO_JDK, JDK_HOME, and JAVA_HOME environment variables in that order.

我做到了:

$ export STUDIO_JDK=`/usr/libexec/java_home -v 13`
$ echo $STUDIO_JDK
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
$ open /Applications/Android Studio 3.5.app/
$ ps ax | grep Android
 1198   ??  R      1:07.86 /Applications/Android Studio 3.5.app/Contents/MacOS/studio
 1269   ??  S      0:00.02 /Applications/Android Studio 3.5.app/Contents/bin/fsnotifier
 1300 s000  R+     0:00.00 grep Android
$ ps eww 1198
 PID   TT  STAT      TIME COMMAND
 1198   ??  S      1:46.13 /Applications/Android Studio 3.5.app/Contents/MacOS/studio ANDROID_HOME=/Users/hborders/Library/Android/sdk TERM_PROGRAM=Apple_Terminal JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home TMPDIR=/var/folders/r6/qtc_vgrx1xb2gqsg08y0tl000000gp/T/ __CF_USER_TEXT_ENCODING=0x1F6:0x0:0x0 SHELL=/bin/bash _=/usr/bin/open HOME=/Users/hborders TERM_SESSION_ID=CA1F90D5-ABE9-427A-ACC5-EEE63AC66CAB SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.J9ll4GUN4M/Listeners Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.B3Rds8GPV9/Render TERM_PROGRAM_VERSION=421.2 SHLVL=1 PATH=/usr/local/bin:/Users/hborders/Library/Android/sdk/tools:/Users/hborders/Library/Android/sdk/platform-tools:/usr/local/opt/go/libexec/bin:/Users/hborders/go/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin DISPLAY=/private/tmp/com.apple.launchd.4O8kDH9XQS/org.macosforge.xquartz:0 TERM=xterm-256color LOGNAME=hborders XPC_SERVICE_NAME=com.google.android.studio.55476 LANG=en_US.UTF-8 GOROOT=/usr/local/opt/go/libexec GOPATH=/Users/hborders/go USER=hborders XPC_FLAGS=0x1 STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home PWD=/Users/hborders

但是,当我在Android Studio的收集故障排除信息"对话框中查看时,会获得以下信息:

However, when I look in Android Studio’s Collect Troubleshooting Information dialog, I get the following information:

Build version: Android Studio 3.5.1 Build #AI-191.8026.42.35.5900203 September 25, 2019
Java version: 1.8.0_202-release-1483-b49-5587405x86_64
Operating System: Mac OS X (10.14.6, x86_64)
JVM version: OpenJDK 64-Bit Server VM JetBrains s.r.o

我也尝试过这样启动Android Studio:

I also tried launching Android Studio thusly:

$ /Applications/Android Studio 3.5.app/Contents/MacOS/studio

我得到了相同的结果. 我为此提交了Android Studio问题.请加注星标.

And I got the same result. I filed an Android Studio issue about this. Please star it.

有什么想法吗?

TLDR

请勿尝试执行此操作.尝试更改boot jdk时,Android Studio 3.5.1挂起. 我已将此问题提交到Android Studio问题跟踪器中.请加注星标.

Don't try to do this. Android Studio 3.5.1 hangs when trying to change the boot jdk. I filed this in the Android Studio issue tracker. Please star it.

有人私下建议:

cmd+shift+a-> switch boot jdk

这肯定改变了Android Studio的行为.但是,Android Studio 3.5.1挂在初始屏幕上.

This definitely changed Android Studio's behavior. However, Android Studio 3.5.1 hung at the splash screen.

当我尝试使用任一Oracle JDK 13启动它时,发生了这种情况:

This happened when I tried to start it with either Oracle JDK 13:

java version "13.0.1" 2019-10-15
Java(TM) SE Runtime Environment (build 13.0.1+9)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)

或Oracle JDK 11:

java version "11.0.5" 2019-10-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)

为解决此问题,我发现Android Studio将boot jdk首选项存储在 ~/Library/Preferences/<PRODUCT><VERSION> (在我的情况下为~/Library/Preferences/AndroidStudio3.5).

To fix this problem, I found that Android Studio stores the boot jdk preference in ~/Library/Preferences/<PRODUCT><VERSION> on macOS (~/Library/Preferences/AndroidStudio3.5 in my case).

然后,我只是删除了studio.jdk文件,然后Android Studio再次正常启动.

Then, I simply deleted the studio.jdk file, and Android Studio started normally again.