构建 Cordova PhoneGap 时出现 VM 错误

17

在尝试创建一个Cordova PhoneGap应用程序时,我在最后一步使用构建命令时遇到了这个错误。

cordova build android
我遇到了这个错误:
错误
D:\rmapp>cordova run android 运行命令:D:\rmapp\platforms\android\cordova\run.bat ANDROID_HOME=D:\Android\sdk JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_71 警告:未指定目标,正在部署到设备“192.168.56.100:5555”。 正在运行:D:\rmapp\platforms\android\gradlew cdvBuildDebug -b D:\rmapp\platform s\android\build.gradle -PcdvBuildArch=x86 -Dorg.gradle.daemon=true 构建失败,出现异常。
* 出现了什么问题: 无法启动守护进程。 这个问题可能是由于守护进程的配置不正确造成的。 例如,使用了一个无法识别的 jvm 选项。 请参考用户指南中关于守护进程的章节,在 http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html 上查看。 请阅读以下过程输出以获取更多信息: ----------------------- VM 初始化时发生错误 无法为对象堆保留足够的空间 错误:无法创建 Java 虚拟机。 错误:程序将退出。
* 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。
D:\rmapp\platforms\android\cordova\node_modules\q\q.js:126 throw e; ^ 命令 cmd 的错误代码为 1,参数为:/s /c "D:\rmapp\platforms\android\grad lew cdvBuildDebug -b D:\rmapp\platforms\android\build.gradle -PcdvBuildArch=x86 -Dorg.gradle.daemon=true" 运行一个或多个平台时出现错误:错误:D:\rmapp\platforms\android\cordova\run.bat:命令以退出代码 1 失败 您可能没有所需的环境或操作系统来运行此项目。

1
请粘贴您的错误代码,而不是代码截图。这样,在将来查找其错误代码的人可以找到相关的线程。 - Charles Clayton
generator-m 项目中遇到了相同的错误。 - IsmailS
第三次终于成功了,可能是因为我没有连接到互联网。第三次它从https://repo1.maven.org/maven2/com/android/tools/下载了大量文件,然后成功地将应用程序安装在设备上。 - IsmailS
可能是设备屏幕没有激活。不确定这是否会产生影响。 - IsmailS
17个回答

20

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

以下是对我有效的解决方法:

添加一个环境变量GRADLE_OPTS,值为-Dorg.gradle.jvmargs=-Xmx512m

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


我该怎么做? - Antonis
4
  1. 打开系统属性
  2. 进入高级系统设置
  3. 点击环境变量按钮
  4. 使用以上设置添加新的系统变量。
此致敬礼, Sarim Ghani http://www.i-splendid.com/
- Sarim Shekhani

8

关闭Visual Studio--至少在我的情况下是这个问题。

以及任何其他占用内存较多的程序。


在我的情况下,它是xCode。 - Moamen Mostafa

5

我的JAVA_HOME默认使用的是x86版本。在系统环境变量中添加一个新的JAVA_HOME变量,并将其指向x64版本对我有用。这是我最终使用的路径:

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


3

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

  1. 在控制面板的程序和功能中卸载与Java相关的所有内容
  2. 检查以下目录并删除Java文件夹: a. c:\users\\AppData\Local\Oracle b. c:\users\\AppData\LocalLow\Oracle c. c:\Program Files\Java d. C:\Program Files (x86)\Java e. C:\ProgramData\Oracle **重要提示:仅在成功卸载控制面板中的所有Java条目之后才删除这些文件夹。
  3. 此处下载并安装最新的Java SDK
  4. 完成以上步骤后,打开cmd(以管理员身份运行),然后再次尝试构建

结论:据我所知,我的机器上没有正确配置/安装Java。因此,清除安装所有内容解决了我的问题。


3

我也遇到了同样的问题。尝试以管理员权限运行命令行。


3

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


3

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

2

以管理员权限在CLI中运行以下命令。

>export _JAVA_OPTIONS="-Xmx256M"

在内存很大但限制较低的机器上,我遇到了这种情况。Java会检测到机器上的内存并决定分配大堆,但由于受限制而无法进行分配。


1
我在使用Cordova时遇到了同样的问题。正如这篇文章中提到的那样,似乎堆没有被分配,因此JVM没有初始化。
尝试清空系统缓存,然后再尝试构建项目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接