Кордова Не удалось зарезервировать достаточно места для кучи объектов 2097152KB

Я новичок в кордове, и я пытаюсь создать проект HelloWold для Android.

Когда я использую cordova platforms add android, это вызывает некоторое исключение:

D:\CordovaSpace\helloWorld>cordova platforms add android
Adding android project...
Creating Cordova project for the Android platform:
        Path: platforms\android
        Package: com.example.helloworld
        Name: HelloWorld
        Activity: MainActivity
        Android target: android-24
Subproject Path: CordovaLib
Android project created with [email protected]
Installing "cordova-plugin-whitelist" for android
ANDROID_HOME=D:\Java_Android_SDK\android_sdk
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_73
Subproject Path: CordovaLib
Starting a new Gradle Daemon for this build (subsequent builds will be faster).

FAILURE: Build failed with an exception.

* What went wrong:
Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html
Please read the following process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Failed to install 'cordova-plugin-whitelist':Error: cmd: Command failed with exit code 1
    at ChildProcess.whenDone (D:\CordovaSpace\helloWorld\platforms\android\cordova\node_modules\cordova-common\src\superspawn.js:169:23)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:850:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
Error: cmd: Command failed with exit code 1

Ответы

Ответ 1

Повторите попытку после увеличения объема памяти вашей виртуальной машины (?).

Вот как это сделать на платформе Windows:

Перейдите в Пуск → Панель управления → Система → Дополнительно (вкладка) → Переменные среды → Системные переменные → Новые:
Имя переменной: _JAVA_OPTIONS
Значение переменной: -Xmx512M

Не игнорируйте символы оценки и подчеркивания.

Ответ 2

У меня была такая же проблема. Я перешел на использование 64-битного JDK, как было предложено в здесь, и он отлично работал. Я использовал Ionic 3.5.0 в Windows 10.

Ответ 3

Установка переменной среды на системном уровне, как и в решении @kemal, задает размер памяти для всех приложений JVM в системе, что не является тем, что больше всего хотелось бы сделать.

Вместо этого задайте размер кучи в файле свойств кордоны gradlebuilder.

args.push('-Dorg.gradle.jvmargs=-Xmx2048m');

Ответ 4

args.push('-Dorg.gradle.jvmargs=-Xmx2048m') 
into 
args.push('-Dorg.gradle.jvmargs=-Xmx1024m');

в следующих файлах местоположения.

  1. проект-папка\платформы\Android\Cordova\Lib\строителей\GradleBuilder.js

  2. проект-папка\платформы\Android\Cordova\Lib\строителей\StudioBuilder.js

Ответ 5

args.push('-Dorg.gradle.jvmargs=-Xmx2048m') 
 to  
args.push('-Dorg.gradle.jvmargs=-Xmx1024m');

в следующих файлах местоположения.

  1. проект-папка\платформы\Android\Cordova\Lib\строителей\builders.js
  2. проект-папка\платформы\Android\Cordova\Lib\строителей\GradleBuilder.js
  3. проект-папка\платформы\Android\Cordova\Lib\строителей\StudioBuilder.js