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" }