簡體   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