Java Cordova无法为2097152KB对象堆保留足够的空间

Java Cordova无法为2097152KB对象堆保留足够的空间,java,android,cordova,Java,Android,Cordova,我是cordova的新手,正在尝试创建一个android HelloWold项目 当我使用cordova Platform add android时,它会引发一些异常: D:\CordovaSpace\helloWorld>cordova platforms add android Adding android project... Creating Cordova project for the Android platform: Path: platforms\andr

我是cordova的新手,正在尝试创建一个android HelloWold项目

当我使用cordova Platform 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 cordova-android@6.0.0
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

请在增加Java VM(?)内存大小后重试

以下是如何在Windows平台上修复它:

转到开始->控制面板->系统->高级(选项卡)->环境变量->系统变量->新建:
变量名称:
\u JAVA\u选项

变量值:
-Xmx512M


不要忽略分数和下划线字符。

我也有同样的问题。我按照中的建议改用64位JDK,效果很好。我在Windows 10上使用的是Ionic 3.5.0。

在@kemal的解决方案中设置系统级别的环境变量将设置系统中所有JVM应用程序的内存大小,这不是大多数人想要做的

相反,在cordova gradlebuilder属性文件中设置堆大小

args.push('-Dorg.gradle.jvmargs=-Xmx2048m');
在以下位置文件上

  • 项目文件夹\platforms\android\cordova\lib\builders\GradleBuilder.js

  • 项目文件夹\platforms\android\cordova\lib\builders\StudioBuilder.js

  • 在以下位置文件上

  • 项目文件夹\platforms\android\cordova\lib\builders\builders.js
  • 项目文件夹\platforms\android\cordova\lib\builders\GradleBuilder.js
  • 项目文件夹\platforms\android\cordova\lib\builders\StudioBuilder.js

  • 转到
    开始->控制面板->系统->高级(选项卡)->环境变量->系统变量

    添加/更改
    JAVA_HOME
    value
    
    来自C:\ProgramFiles(x86)\Java\jdk1.8.0\u 192
    到C:\Program Files\Java\jdk1.8.0\U 192

    也就是说,将
    程序文件(x86)
    路径更改为
    程序文件
    路径。

    我也遇到了同样的问题

    无论如何,下面是如何修复它: 转到开始->控制面板->系统->高级(选项卡)->环境变量->系统变量->新建: 变量名:_JAVA_选项

    变量值:-Xmx512M 如果512不工作,则将其更改为

    变量值:-Xmx1024M 也改变了道路

    变量名:路径

    变量值:;C:\ProgramFiles\Java\jre6\bin;F:\JDK\bin;
    将其更改为适当的路径。

    转到:\platforms\android\cordova\lib\config\GradlePropertiesParser.js

    constructor (platformDir) {
            this._defaults = {
                // 10 seconds -> 6 seconds
                'org.gradle.daemon': 'true',
    
                // to allow dex in process
                'org.gradle.jvmargs': '-Xmx2048m',
    
                // allow NDK to be used - required by Gradle 1.5 plugin
                'android.useDeprecatedNdk': 'true'
    
                // Shaves another 100ms, but produces a "try at own risk" warning. Not worth it (yet):
                // 'org.gradle.parallel': 'true'
            };
    
    

    并将
    'org.gradle.jvmargs':'-Xmx2048m',
    更改为
    'org.gradle.jvmargs':'-Xmx1024m',

    这对我的爱奥尼亚应用程序有效

    换行

    // to allow dex in process
    'org.gradle.jvmargs': '-Xmx1024m',
    

    在你的

    <app path>\platforms\android\cordova\lib\config
    
    \platforms\android\cordova\lib\config
    

    谢谢

    我们可以再给您发送一些内存吗?您缺少2GB内存,我想我该怎么办?(请原谅我英语说得不好)多买些公羊好吗?你现在有多少钱?@ScaryWombat很容易挖苦人!我的系统有9Gb的可用内存,但我仍然遇到同样的问题。添加一个本地或用户环境变量_JAVA_OPTIONS也可以?这对我来说就像一个咒语,但在重新启动
    cli
    之后,它就像一个咒语!这对我来说是可行的,但在那之后,我就不能再打开eclipse了。你是说
    project/platforms/android/build.gradle
    ?如果你没有64位版本,就安装它。上面的评论解决了我的问题。Java_Home指向32位版本。很高兴知道它有帮助。谢谢,你的回答解决了我的问题,我被困了3天。我应用了很多不同的东西。但忽略你的答案,因为分数更低。非常感谢。
    // to allow dex in process
    'org.gradle.jvmargs': '-Xmx1024m',
    
    // to allow dex in process
    'org.gradle.jvmargs': '-Xmx2048m',
    
    <app path>\platforms\android\cordova\lib\config