构建Cordova PhoneGap时出现VM错误

时间:2015-05-21 21:09:47

标签: android eclipse cordova phonegap-build

我尝试创建 Cordova PhoneGap 应用程序时出现此错误,并在最后一步中使用构建命令

cordova build android

我收到了这个错误:

enter image description here

错误

    
D:\rmapp>cordova run android
Running command: D:\rmapp\platforms\android\cordova\run.bat
ANDROID_HOME=D:\Android\sdk
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_71
WARNING : No target specified, deploying to device '192.168.56.100:5555'.
Running: D:\rmapp\platforms\android\gradlew cdvBuildDebug -b D:\rmapp\platform
s\android\build.gradle -PcdvBuildArch=x86 -Dorg.gradle.daemon=true

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 http://gradle.org/docs/2
.2.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 object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.

D:\rmapp\platforms\android\cordova\node_modules\q\q.js:126
                    throw e;
                          ^
Error code 1 for command: cmd with args: /s /c "D:\rmapp\platforms\android\grad
lew cdvBuildDebug -b D:\rmapp\platforms\android\build.gradle -PcdvBuildArch=x86
 -Dorg.gradle.daemon=true"
ERROR running one or more of the platforms: Error: D:\rmapp\platforms\android\c
ordova\run.bat: Command failed with exit code 1
You may not have the required environment or OS to run this project

17 个答案:

答案 0 :(得分:17)

您的系统无法为jvm提供足够的连续内存空间并导致问题。

这对我有用:

添加值为GRADLE_OPTS

的环境变量-Dorg.gradle.jvmargs=-Xmx512m

如果您有更多可用内存空间,可以使用-Xmx1g

答案 1 :(得分:7)

Close Visual Studio - 至少这是我的问题。

和/或任何其他内存密集型程序。

答案 2 :(得分:3)

我也有同样的问题。尝试使用管理权限运行命令行。

答案 3 :(得分:3)

在第<:p>行更改参数-Xmx20484m1024

args.push('-Dorg.gradle.jvmargs=-Xmx1024m'); 
项目文件中的

  

平台\机器人\科尔多瓦\ lib中\助洗剂\ GradleBuilder.js

。 它为我工作

https://forum.ionicframework.com/t/build-failed-unable-start-the-daemon-process/72171

它适用于我的eclipce phonegap插件

答案 4 :(得分:3)

即使我使用了2个演出(-Dorg.gradle.jvmargs = -Xmx2048m),我也遇到了这个错误,但是当我将JAVA_HOME更改为64位JDK目录时它开始工作。使用更高版本的Java也可能有助于(1.8 +)。

答案 5 :(得分:3)

刚刚在Windows 8.1和Windows 7中解决了这个问题。这就是我所做的:

  1. 在控制面板的“程序和功能”中卸载与java相关的所有内容
  2. 检查以下目录并删除java文件夹:  一个。 C:\用户\\应用程序数据\本地\ ORACLE  湾C:\用户\\应用程序数据\ LocalLow \ ORACLE  C。 c:\ Program Files \ Java  d。 C:\ Program Files(x86)\ Java  即C:\ ProgramData \ ORACLE **重要提示:仅在控制面板中成功卸载所有Java条目后才删除此文件夹&gt;程序和功能
  3. here
  4. 下载并安装最新的Java SDK
  5. 完成所有操作后,请转到cmd(以管理员身份运行)并尝试重新构建
  6. 结论:根据我的理解,我的机器中没有正确配置/安装java。所以干净安装一切都解决了我的问题。

答案 6 :(得分:2)

在环境变量中,添加值为_JAVA_OPTIONS的系统变量-Xmx512M

答案 7 :(得分:2)

在CLI中使用admin right运行以下命令。

>export _JAVA_OPTIONS="-Xmx256M"

在具有大量内存但具有较低内存ulimits的计算机上,这种情况发生在我身上。 Java决定分配一个大堆,因为它检测到机器中的ram,但由于ulimits,它不允许分配它。

答案 8 :(得分:2)

我的JAVA_HOME默认为x86版本。在System env变量中添加一个新的JAVA_HOME变量并将其指向x64版本对我有用。这是我最终的道路:

C:\ Program Files \ Java \ jdk1.8.0_162

答案 9 :(得分:1)

我收到此错误,因为我没有安装32位JDK。已安装,重新启动并修复它。

答案 10 :(得分:1)

我的解决方案是安装新的Java SDK。我还必须将ERROR: null Enclosed Exception: http://www.w3.org/2000/svg: The attribute "stroke" represents an invalid CSS value ("rgba(0, 0, 0, 0.298039)"). Original message: The "stroke" property does not support function values. ***** CSSEngine: exception property.syntax.error:org.w3c.dom.DOMException: The "stroke" property does not support function values. AttrValue:rgba(0, 0, 0, 0.298039) 路径更改为指向新SDK

答案 11 :(得分:1)

这个错误不时发生在我身上。我通过在ANDROID_HOME文件夹中运行“SDK Manager”程序来解决这个问题。

答案 12 :(得分:1)

当我安装了最新版本的JDK 1.8.0.121时,我的cordova项目遇到了同样的问题。

要解决这个问题,我已经卸载了所有JDK版本(1.6,1.7,1.8 ..),并且刚刚安装了最新版本。

答案 13 :(得分:1)

我在Cordova工作时遇到了同样的问题。

如此post中所述,看起来堆未被分配,因此JVM未初始化。

尝试释放系统缓存,然后尝试构建项目。

答案 14 :(得分:1)

安装64位版本的Java JDK并将JAVA_HOME指向安装字典。

答案 15 :(得分:0)

我有一个非常类似的问题,有时记录此JAVAC错误,而有时记录设备连接问题或未正确安装插件。例如:

  

无法运行“ javac -version”

     

执行程序失败,退出代码为3221225794。

我通过运行以下命令修复了Windows中的所有DLL问题,并随后重新启动计算机,从而成功修复了该问题。 在powershell中,可能需要管理员:

sfc /scannow

答案 16 :(得分:-1)

您需要通过设置两个环境变量来分配内存:

  • _JAVA_OPTIONS,其值为-Xmx2048M,用于设置Java使用的内存量
  • GRADLE_OPTS,其值为-Dorg.gradle.jvmargs=-Xmx2048m,用于设置Gradle使用的内存量(这可以通过[PROJECT PATH]\platforms\android\cordova\lib\builders\GradleBuilder.js路径按每个项目指定,但默认设置为2GB atm )

如果cordova抱怨Failed to run "javac -version"更改_JAVA_OPTIONS内存更低的内存。