Android Studio Gradle问题:OutOfMemoryError:PermGen空间


67

经过几个小时的努力,从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),所以我认为它确实不是内存。我只是不知道这是什么...

Answers:


115

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

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

2
并如有必要,删除现有的“ org.gradle.jvmargs = -Xms128m -Xmx512m”或类似的行
Sunil Kumar

1
gradle中的dexOptions {javaMaxHeapSize“ 2g”}对我有用
png

设置MaxPermSize后,您应该重新启动Android Stuio!谢谢:)
hoi

43

可以在Android Studio中的“文件”>“设置”>“编译器”下增加PermGen空间的大小。查找名为“其他编译器进程VM选项”的设置。只需添加以下参数:

-XX:MaxPermSize=512M

默认值为92M。如果要指定以GB为单位的值,请使用G。


感谢Soren,您知道如何将其设置为gradle版本吗?
卡里姆·瓦雷拉

要将其设置为Android Studio中的gradle构建,请将-XX:MaxPermSize参数放入“运行/调试配置”上的VM选项。
sixones 2014年


12

设置JVM参数(例如最大PermGen大小)的建议方法是遵循此处提供的建议-http: //tools.android.com/tech-docs/configuration

Android Studio 2.0及更高版本

从Android Studio 2.0开始,有一个选项可以直接从IDE访问配置文件。

使用Help->Edit Custom VM Options菜单。 在此处输入图片说明

从配置页面中获取的全套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)
  • 视窗: %USERPROFILE%.AndroidStudio \ studio.exe.vmoptions(或%USERPROFILE%.AndroidStudio \ studio64.exe.vmoptions)

请注意,您不应再编辑AndroidStudio应用程序目录中的文件,因为这些文件将随IDE的每次新安装/更新而被覆盖。


您的菜单栏如何如此精美蓝色?
dcow

你知道吗...我不知道为什么是那种颜色!在我当前的Android Studio版本中,现在不是这样。
Craig Russell

您正在使用深色主题,我也是。它看起来比蓝色更蓝。妒。
dcow

4

另外,对我也有用-如果您使用的是Linux,只需将环境变量GRADLE_OPTS设置为“ -XX:MaxPermSize = 512m”(或所需的任何大小)。


2

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

创建或编辑~/.gradle/gradle.properties以包括以下内容

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

1

尝试将其添加到gradle.properties中

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

0

在每次构建或清理时,都会启动几个Java进程,从而导致内存不足错误。

蛮力解决方案:

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

[Android Studio 1.4-JRE 1.7.0_75-b13]



0

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

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

找不到方法“ jvmArgs”
Makalele,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.