67

经过几个小时的努力,从 Eclipse 导入一个旧项目以使用 Gradle 并进入 Android Studio v0.1.3 ......我现在得到的是我实际上可以在命令行上进行构建,但是当我做构建时/Rebuild Project in 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),所以我不认为它真的是内存。我就是想不通这是什么...

4

10 回答 10

115

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

org.gradle.jvmargs=-XX:MaxPermSize=512m
于 2013-08-05T21:50:00.400 回答
43

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

-XX:MaxPermSize=512M

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

于 2013-07-11T14:24:05.717 回答
14

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

/Applications/Android Studio.app/bin/idea.vmoptions
于 2013-06-24T16:40:46.373 回答
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)
  • Windows:%USERPROFILE%.AndroidStudio\studio.exe.vmoptions(或 %USERPROFILE%.AndroidStudio\studio64.exe.vmoptions)

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

于 2015-05-15T06:55:26.693 回答
4

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

于 2014-07-23T08:52:35.057 回答
2

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

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

org.gradle.daemon=false
GRADLE_OPTS="-Xmx2048m -Xms2048m -XX:MaxPermSize=1024m"
org.gradle.jvmargs=-XX:MaxPermSize=1024m
于 2016-06-15T18:18:28.197 回答
1

尝试将此添加到您的gradle.properties

 org.gradle.jvmargs=-XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=utf-8
于 2015-05-05T23:19:51.027 回答
0

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

test {
    jvmArgs "-XX:MaxPermSize=1024m"
}
于 2016-09-19T12:09:28.313 回答
0

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

蛮力解决方案:

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

[Android Studio 1.4 - JRE 1.7.0_75-b13]

于 2015-10-14T12:38:57.683 回答
0

在 Mac 上,转到 ~/.gradle 并删除缓存和守护程序文件夹。这些得到再生。

于 2016-03-17T19:15:19.820 回答