[英]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.