Android Studio Gradle问题:OutOfMemoryError:PermGen空间

时间:2013-06-09 18:07:51

标签: android gradle android-studio

经过几个小时的努力,从Eclipse导入的旧项目使用Gradle并进入Android Studio v0.1.3 ......我现在所做的是我可以在命令行上实际构建,但是当我在 Studio中构建/重建项目我得到:

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),所以我不认为它真的是内存。我只是无法弄清楚这是什么......

10 个答案:

答案 0 :(得分:114)

对于那些从命令行运行gradle的人,创建一个 gradle.properties 文件,将其放在项目的根目录中,然后添加以下内容:

org.gradle.jvmargs=-XX:MaxPermSize=512m

答案 1 :(得分:43)

PermGen空间的大小可以在Android Studio中的File>下增加。设置>编译器。查找名为“Additional compiler process VM options”的设置。只需添加以下参数:

-XX:MaxPermSize=512M

默认值为92M。如果要指定以千兆字节为单位的值,请使用G.

答案 2 :(得分:14)

如果您使用的是Mac OS X,则可以在文件内增加MaxPermSize

/Applications/Android Studio.app/bin/idea.vmoptions

答案 3 :(得分:12)

建议的JVM参数设置方法,例如max PermGen size,遵循此处给出的建议 - http://tools.android.com/tech-docs/configuration

Android Studio 2.0及更新版

从Android Studio 2.0开始,可以直接从IDE访问配置文件。

使用Help->Edit Custom VM Options菜单。 enter image description here

从配置页面中,完整的JVM参数集如下,以及它们的默认值:

-Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -XX:+UseCompressedOops

旧版说明:

您应该创建自己的 studio.vmoptions 文件,并将您的JVM设置放在此处。您的文件的位置应为:

  
      
  • Mac OS 〜/ Library / Preferences / AndroidStudio / studio.vmoptions
  •   
  • Linux 〜/ .AndroidStudio / studio.vmoptions (或〜/ .AndroidStudio / studio64.vmoptions)
  •   
  • Windows:%USERPROFILE%。Android Studio \ studio.exe.vmoptions (或%USERPROFILE%。Android Studio \ studio64.exe.vmoptions)
  •   

请注意,您不应再编辑AndroidStudio app目录中的文件,因为每次安装/更新IDE都会覆盖这些文件。

答案 4 :(得分:4)

另外,this对我有用 - 如果你在Linux中,只需将环境变量GRADLE_OPTS设置为“-XX:MaxPermSize = 512m”(或任何你想要的大小)。

答案 5 :(得分:1)

尝试将此添加到 gradle.properties

 org.gradle.jvmargs=-XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=utf-8

答案 6 :(得分:1)

您可以拥有gradle.properties文件,然后添加以下内容。

创建或修改~/.gradle/gradle.properties以包含以下内容

org.gradle.daemon=false
GRADLE_OPTS="-Xmx2048m -Xms2048m -XX:MaxPermSize=1024m"
org.gradle.jvmargs=-XX:MaxPermSize=1024m

答案 7 :(得分:0)

在每次构建或清理时,都会启动几个java进程,导致Out of Memory错误。

蛮力解决方案:

在任何构建或运行之前杀死java.exe进程。这将对使用java的任何其他活动应用程序产生副作用。

[Android Studio 1.4 - JRE 1.7.0_75-b13]

答案 8 :(得分:0)

在Mac上转至〜/ .gradle并删除缓存和守护程序文件夹。这些都会重生。

答案 9 :(得分:0)

在Gradle构建文件中,在test {}块中添加以下jvmArgs以增加perm-gen空间分配:

test {
    jvmArgs "-XX:MaxPermSize=1024m"
}