[英]Android Studio - Unrecognized VM option 'MaxPermSize=256m'
我刚刚在 Elementary OS 0.3 Freya 上安装了 Android Studio 并使用终端运行它。 但是,在我第一次启动时,会显示一条错误消息:
Gradle“测试”项目刷新失败
无法启动守护进程。 此问题可能是由于守护程序配置不正确造成的。 例如,使用了无法识别的 jvm 选项。 请参阅http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html上的守护进程用户指南章节,请阅读以下流程 Z78E6221F6393D1356ZFD14CE93 了解更多信息:
无法识别的 VM 选项“MaxPermSize=256m”错误:无法创建 Java 虚拟机。 错误:发生了致命异常。 程序将会退出。
我读了这篇文章并尝试了所有方法来解决它,但无济于事。 我确实注意到他的错误与我的有些不同,并认为这可能是我无法使用建议的方式解决问题的原因。
当我在终端上执行 .sh 文件时,它打印出:
Java HotSpot(TM) 服务器虚拟机警告:忽略选项 MaxPermSize=250m; 在 8.0 中删除了支持
(java:5094):Gtk-WARNING **:无法在module_path中找到主题引擎:“pixmap”
Gtk 消息:无法加载模块“canberra-gtk-module”
我不确定它是否与错误有关。 请帮忙。
正如在此主题中已经说过的那样,在您的案例中使用的Java 8中删除了Permanent Generation 。 我认为,最简单的解决方案是在程序执行期间删除与Permanent Generation相关的参数。
转到Android Studio的目录。 然后转到bin/
子目录。 找到以下文件,其中包含Java虚拟机选项:
studio.vmoptions
studio64.vmoptions
打开这些文件并使用MaxPerSize
参数找到行。 它应该如下所示:
XX:MaxPermSize=256m
在两个文件中删除此行。 我不知道您使用的是32位还是64位操作系统,因此您可以更新这两个文件以防万一。
我不确定它是否会解决你的问题,但我会在这种情况下尝试。 在我的情况下,使用此选项和Java 8,我只是收到警告,但Android Studio仍会启动。 删除此参数后,Android Studio仍会启动,但不会发出警告。 我正在使用Ubuntu 14.04 LTS。
编辑 :
此处描述的此问题还有另一种解决方案: https : //stackoverflow.com/a/27913562/1150795 。
转到文件>其他设置>默认项目结构> JDK位置并检查路径。
对于Ubuntu Linux,如果我们使用Oracle JVM,我们可以将/usr/lib/jvm/java-7-oracle
为默认JDK。 JDK 7是Android最安全的选择。
在我的情况下打开$ANDROID_HOME/tools/lib/monitor-x86_64/monitor.ini
并删除
XX:MaxPermSize=256m
从它完成了这项工作。
我有同样的问题,我可以通过直接在终端中添加它来解决它
导出 JAVA_VERSION=1.8
然后尝试
哦,我已经解决了这个问题,当android studio在JDK 6或JDK 7上运行时安装Oracle JDK 9(如果我没弄错的话)。 所以我卸载了Oracle JDK 9,然后下载并安装了JDK 7。
在MacOS上,./ gradlew中的以下子句注入此选项:
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\" \"-Xmx1024m\" \"-Xms256m\" \"-XX:MaxPermSize=1024m\""
fi
生成项目后,可以手动编辑此文件。
就我而言,我有一条线
org.gradle.jvmargs=-Xmx6408m -XX:MaxPermSize=6408m -XX:+HeapDumpOnOutOfMemoryError
在我的项目结构中的gradle.properties
文件中。
从该文件中删除-XX:MaxPermSize=6408m
修复了一个问题
-XX:MaxPermSize
在 JDK 8 中被弃用,在 JDK 16 中被标记为过时,并在 JDK 17 中被删除。它被-XX:MaxMetaspaceSize
选项取代。
将-XX:MaxPermSize
更改为-XX:MaxMetaspaceSize
解决了我的问题。
参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.