繁体   English   中英

Android Studio - 无法识别的 VM 选项“MaxPermSize=256m”

[英]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解决了我的问题。

参考:

  1. https://github.com/expo/expo-cli/issues/4196#issuecomment-1035850918
  2. https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html#removed-java-options

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM