Android Studio Gradle问题:OutOfMemoryError:PermGen空间
经过几个小时的争取从Eclipse导入的旧项目使用Gradle和Android Studio v0.1.3 …我现在得到的是我可以在命令行实际上做生成,但是当我做生成/ 在 Studio中重build项目我得到:
Gradle: FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':EpicMix'. > Failed to notify project evaluation listener. > A problem occurred configuring project ':facebook'. > Failed to notify project evaluation listener. > java.lang.OutOfMemoryError: PermGen space
这不是一个巨大的项目,有一些小的子项目(包括Facebook),所以我不认为这是真正的记忆。 我只是不知道这是什么…
对于那些从命令行运行gradle的人来说,创build一个gradle.properties文件,把它放在你的项目的根目录下,然后添加下面的内容:
org.gradle.jvmargs=-XX:MaxPermSize=512m
在Android Studio中,可以在文件>设置>编译器中增加PermGen空间的大小。 查找名为“其他编译器进程VM选项”的设置。 只需添加以下参数:
-XX:MaxPermSize=512M
默认值是92M。 如果要以千兆字节为单位指定一个值,请使用G.
如果您在Mac OS X上,则可以在文件内增加MaxPermSize
/Applications/Android Studio.app/bin/idea.vmoptions
推荐的设置JVM参数的方法,比如最大PermGen大小,是按照这里给出的build议 – http://tools.android.com/tech-docs/configuration
Android Studio 2.0及更新版本
从Android Studio 2.0开始,可以直接从IDE访问configuration文件。
使用Help->Edit Custom VM Options
菜单。
从configuration页面看,全套JVM参数如下,以及它们的默认值:
-Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -XX:+UseCompressedOops
传统说明:
你应该创build你自己的studio.vmoptions文件,并把你的JVM设置放在这里。 您的文件的位置应该是:
- Mac OS〜/ Library / Preferences / AndroidStudio / studio.vmoptions
- Linux〜 / .AndroidStudio / studio.vmoptions (或〜/ .AndroidStudio / studio64.vmoptions)
- Windows: %USERPROFILE%.AndroidStudio \ studio.exe.vmoptions (或%USERPROFILE%.AndroidStudio \ studio64.exe.vmoptions)
请注意,您不应再编辑AndroidStudio应用程序目录中的文件,因为这些文件将被IDE的每个新安装/更新所覆盖。
此外, 这对我有用 – 如果你在Linux中,只需将环境variablesGRADLE_OPTS设置为“-XX:MaxPermSize = 512m”(或任何你想要的大小)。
尝试添加到您的gradle.properties :
org.gradle.jvmargs=-XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=utf-8
你可以有一个gradle.properties
文件,然后添加以下内容。
创build或编辑~/.gradle/gradle.properties
以包含以下内容
org.gradle.daemon=false GRADLE_OPTS="-Xmx2048m -Xms2048m -XX:MaxPermSize=1024m" org.gradle.jvmargs=-XX:MaxPermSize=1024m
在每个构build或清理几个Java进程都开始引起内存不足的错误。
蛮力解决scheme:
在任何生成或运行之前杀死java.exe进程。 这将对使用java的任何其他活动应用程序有副作用。
[Android Studio 1.4 – JRE 1.7.0_75-b13]
在Mac上转到〜/ .gradle并删除caching和守护进程文件夹。 这些得到再生。
在您的Gradle构build文件中,在test {}块内添加以下jvmArgs以增加perm-gen空间分配:
test { jvmArgs "-XX:MaxPermSize=1024m" }