Недостаточно памяти: ошибка пространства кучи Java с библиотекой ffmpeg - PullRequest
0 голосов
/ 23 мая 2019

Ну, это ошибка, которую я получаю:

Out of memory: Java heap space.
Please assign more memory to Gradle in the project's gradle.properties file.
For example, the following line, in the gradle.properties file, sets the maximum Java heap size to 1,024 MB:
<em>org.gradle.jvmargs=-Xmx1024m</em>

, и это из-за:

implementation 'nl.bravobit:android-ffmpeg:1.1.7'

, когда я удаляю, ошибка исчезает. Ну, ошибка говорит увеличениеразмер кучи до 1024 МБ, и я увеличил его до 10 ГБ, он все еще не работает. Вот то, что связано.

org.gradle.jvmargs=-Xmx10000m

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

Ответы [ 2 ]

1 голос
/ 23 мая 2019

В 5-м классе они значительно снизили требования к памяти по умолчанию .

Клиент командной строки теперь запускается с 64 МБ кучи вместо 1 ГБ.Это может повлиять на сборки, выполняющиеся непосредственно внутри клиентской виртуальной машины в режиме --no-daemon.Мы не рекомендуем использовать --no-daemon, но если вы должны его использовать, вы можете увеличить доступную память, используя переменную среды GRADLE_OPTS.

Демон Gradle теперь запускается с 512 МБ кучи вместо 1 ГБ.В больших проектах, возможно, придется увеличить этот параметр, используя свойство org.gradle.jvmargs.

Все рабочие, включая компиляторы и исполнители тестов, теперь начинают с 512 МБ кучи.Предыдущее значение по умолчанию составляло 1/4 физической памяти.В больших проектах может потребоваться увеличить этот параметр для соответствующих задач, например, JavaCompile или Test.

Увеличение клиентской памяти

GRADLE_OPTS=-Xmx1g ./gradlew build

Увеличение демонаПамять

./gradlew -D org.gradle.jvmargs=-Xmx1g

Обновление:

Для дополнительного пояснения gradle использует клиентскую виртуальную машину, виртуальную машину-демона, рабочие виртуальные машины (при параллельной работе),и дополнительные виртуальные машины для определенных задач.

Клиентская виртуальная машина может быть настроена с помощью переменной среды GRADLE_OPTS .

Демоническая виртуальная машина может быть настроена с помощью org.свойство gradle.jvmargs .

Рабочие виртуальные машины разветвляются от виртуальной машины-демона, поэтому они будут использовать те же параметры.

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

tasks.withType(JavaCompile) { options.compilerArgs += ['-Xdoclint:none', '-Xlint:none', '-nowarn'] }

Согласно документации по использованию виртуальной машины клиента:

КлиентВМ обрабатывает только ввод / вывод командной строки, поэтому редко приходится менять ее параметры.

0 голосов
/ 23 мая 2019

Я использовал эту библиотеку, прежде чем нашел здесь https://github.com/tanersener/mobile-ffmpeg

Он будет иметь широкую поддержку аппаратного ускорения, а команды FFmpeg выполняются быстрее, чем эта библиотека nl.bravobit.

Если ваше приложение поддерживает Леденец и Зефир , используйте:

implementation 'com.arthenica:mobile-ffmpeg-full-gpl:4.2.LTS'
...