Ошибка получения Gradle «Не удалось зарезервировать достаточно места для кучи объектов» в Intellij IDEA

Поэтому у меня проблема с распределением памяти. Иногда это работает, а иногда и нет. Я прочитал эту тему и несколько раз пробовал совет. Иногда -Xms512m -Xmx768m работает, иногда -Xms256m -Xmx512m . Я устал от необходимости настраивать этот параметр в IntelliJ в настройках Build, Execution, Deployment > Build Tools > Gradle > Gradle VM . Нет ли какой-либо настройки, которая решает эту проблему раз и навсегда?

У меня 16 ГБ оперативной памяти на моем компьютере под управлением Windows 7, я запускаю IntelliJ IDEA EAP 14 build 138.2210.3, 64-разрядную версию. Плагин сборки Android Gradle v0.12.

Я подозреваю, что град не работает в режиме 64 бит, иначе у него будет ~ 7 ГБ свободной памяти. Почему это не используется?

РЕДАКТИРОВАТЬ:

Я получил ту же ошибку в Visual Studio 2015 с кордорой 5.1.1 под Windows 10 . См. Мое решение ниже.

Solutions Collecting From Web of "Ошибка получения Gradle «Не удалось зарезервировать достаточно места для кучи объектов» в Intellij IDEA"

Я получил ту же ошибку в Visual Studio 2015 с кордорой 5.1.1 под Windows 10 .

Чтобы решить проблему, установите эту переменную среды:

 _JAVA_OPTIONS=-Xmx512M 
  1. Щелкните правой кнопкой мыши на кнопке запуска и откройте «Система»,
  2. Перейдите к Расширенные системные настройки с левой стороны
  3. Нажмите кнопку «Переменные среды …»
  4. В системных переменных нажмите «Создать …».
  5. Новое имя переменной: _JAVA_OPTIONS
  6. Новое значение переменной: -Xmx512M
  7. Нажмите ОК.
  8. Перезапустите Visual Studio, чтобы переменная была поднята

Эта статья указывает мне в правильном направлении. Я изменил инструкции бит Литл, чтобы они соответствовали Windows 10.

Надеюсь, это поможет кому-то!

Установка 64-битной Java решила его для меня

Хотя этот вопрос немного старше, я хотел бы придумать (возможную) причину проблемы: JVM запрашивает весь блок памяти при запуске. Если он не смог найти его, произошла ошибка «Не удалось сохранить …». Джон Папе написал разъяснительную статью в devblog IBM об этой проблеме: https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/why_wont_my_jvm_start_with_this_heap_size?lang=en

Это решение проблемы для меня:

  • Вариант a: использование 64-битной версии Java, поэтому, чтобы дать Java большую площадь возможной подключенной свободной памяти
  • Вариант b: с 32-разрядной Java, использующей меньшую сумму XMX. В файле gradle.properties я просто использую org.gradle.jvmargs=-Xmx150m а у Gradle нет проблем.

Это происходит и со мной, и это сводит меня с ума. Возможно, доступная память (ram) фрагментирована. Хотя у вас достаточно свободной памяти, нет доступных смежных 512 МБ блоков, все они фрагментированы на меньшие блоки! Вот почему вы видите это «иногда».

Некоторые вещи стоит попробовать:

  • Проверьте, недостаточно ли у вас памяти, попробуйте закрыть другие приложения. Это случается со мной иногда, даже если у меня все еще есть 3 ГБ бесплатно из моего 8 ГБ! 3GB может быть фрагментирован в блоках, размер которых меньше 512 МБ [ex: если у вас есть -Xmx512m] … Перезагрузка – это способ дефрагментации вашей памяти. Или закройте firefox, который освободит концерт 😉

  • Кроме того, удивительно, проверьте свое место подкачки [свободное место на диске]! Зависит от реализации машины / JVM / etc. Но если вы отстаете от места подкачки и ваша память фрагментирована, это может быть другой причиной.

  • Уменьшите свой -Xmx до -Xms128m -Xmx512m, чтобы было легче найти непрерывный блок свободной памяти [128 м]. Это может быть не очень хорошая идея, если град действительно нужен минимум 512 м. Учитывая, что мы говорим о градиенте, не обращайте внимания на эту маркерную точку (может быть полезным советом для других случаев / стоит отметить).

  • Дважды проверьте свой Xms / Xmx в атрибуте ~ / .gradle / gradle.properties: org.gradle.jvmargs

  • Используйте idea64.exe [64bit], и если вы считаете, что IDEA использует неправильный JDK [32bit], в последней версии Intellij IDEA [14.1.3 от этого написания], перейдите в «Настройки» -> «Сборка, выполнение, развертывание» – > «Gradle»: «используйте оболочку по умолчанию» и выберите подходящую JVM Gradle (если вы считаете, что она использует неправильную, вы увидите ее здесь ».

  • Наконец, это всего лишь предположение, но: в предыдущей пуле, интересно, выбрали ли вы «использовать проект JDK», если это облегчает поиск смежной памяти. Я не уверен, что это означает, что Gradle будет использовать уже зарезервированный блок памяти IDEA. Таким образом, вместо двух процессов у вас есть только один, и вы можете зарезервировать большой блок памяти при запуске IDEA. Но я не уверен, что это точно, если это возможность предложить Intellij …

Я согласен с вами, у меня никогда не было проблем с памятью с IDEA [ну нет проблем во ВСЕХ] до тех пор, пока не произойдет интеграция градиентов.

В моем случае я открыл слишком много вещей. Освобождение памяти заставило ее работать.