2013-06-09 3 views
66

После нескольких часов борьбы, чтобы получить более старый проект, импортированный из Eclipse, чтобы использовать Gradle и в Android Studio v0.1.3 ... то, что я получил сейчас, я действительно могу сделать сборки в командной строке, но когда я Build/Rebuild Project в студии я получаю:Android Studio Gradle Проблема: OutOfMemoryError: пространство PermGen

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), так что я не Думаю, это действительно память. Я просто не могу понять, что это такое ...

ответ

14

Если вы на Mac OS X, то можно увеличить MaxPermSize внутри файла

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

Спасибо , Я искал это довольно долгое время! – Brian

+1

Примечание. Google рекомендует не делать этого в последних версиях среды IDE. Смотрите мой ответ за то, что они рекомендуют делать сейчас: http://stackoverflow.com/a/30253323/1654145 –

43

Размер пространства PermGen может быть увеличена в Android Studio в разделе «Файл»> «Настройки»> «Компилятор». Найдите параметр «Дополнительные параметры VM процесса компилятора». Просто добавьте следующий параметр:

-XX:MaxPermSize=512M 

Значение по умолчанию - 92M. Используйте G, если вы хотите указать значение в гигабайтах.

+0

Спасибо Сорен, вы знаете, как установить это для построения градиента? –

+0

Чтобы установить его для построения градиента в Android Studio, поместите аргумент '-XX: MaxPermSize' в параметры VM в конфигурациях Run/Debug. – sixones

114

Для тех из вас работает Gradle из командной строки, создать gradle.properties файл, поместите его в корень вашего проекта и добавьте следующие:

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

и удалить уже существующий "org.gradle.jvmargs = -Xms128m -Xmx512m" или аналогичной линии при необходимости –

+1

dexOptions { javaMaxHeapSize "2g" } в Gradle работал для меня – png

+0

Вы должны перезапустить Android Stuio после установки MaxPermSize! Спасибо :) – hoi

4

Кроме того, this работал me - если вы в Linux, просто установите переменную среды GRADLE_OPTS равной «-XX: MaxPermSize = 512m» (или независимо от того, какой размер вы хотите).

1

Попробуйте добавить это к вашим gradle.properties:

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

Рекомендуемый способ установки аргументов виртуальной машины Java, такие как размер не более PermGen, является следуя советам здесь - 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

Взятые на странице конфигурации, полный набор аргументов виртуальной машины Java таковы, Alongs с их значениями по умолчанию:

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

Устаревшие Инструкции:

Вы должны создать ваш собственный studio.vmoptions файл и введите здесь настройки JVM. Расположение файла должно быть:

  • Mac OS ~/Library/Preferences/AndroidStudio/studio.vmoptions
  • Linux ~/.AndroidStudio/studio.vmoptions (or ~/.AndroidStudio/studio64.vmoptions)
  • Windows: %USERPROFILE%.AndroidStudio\studio.exe.vmoptions (or %USERPROFILE%.AndroidStudio\studio64.exe.vmoptions)

Обратите внимание, вы больше не должны редактировать файлы в каталоге приложения AndroidStudio, как они будут перезаписаны с каждой новой установки/обновления в среде IDE.

+0

Как ваш бар меню так красиво синий? – dcow

+0

Знаешь что ... Я понятия не имею, почему это был тот цвет! Это не так для меня сейчас в моей текущей версии Android Studio. –

+0

Вы используете темную тему, я тоже. Он выглядит более синим, чем черный. Ревнивый. – dcow

0

При каждой сборке или очистке запускаются несколько процессов java, вызывающих ошибки в памяти.

Грубая сила раствора:

убийство Java.exe процессы до любой комплекции или бега. Это будет иметь побочные эффекты для любого другого активного приложения, работающего с java.

[Android Студия 1,4 - JRE 1.7.0_75-b13]

0

На Mac идут в ~/.gradle и удалять как кэши и демон папки. Они восстанавливаются.

1

У вас может быть файл gradle.properties, а затем добавить следующее.

Создать или отредактировать ~/.gradle/gradle.properties включить следующую

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

Может ли кто-нибудь объяснить, почему это было приостановлено? –

0

В вашем Gradle построить файл добавить следующие jvmArgs внутри теста {} блок для увеличения выделения пространства завивка-GEN:

test { 
    jvmArgs "-XX:MaxPermSize=1024m" 
} 
Смежные вопросы