【问题标题】:An error occured during creation of android sub-project创建android子项目时出错
【发布时间】:2013-12-18 01:10:23
【问题描述】:

我分别通过 npm install -g cordovanpm install -g phonegap 安装了 cordova e phonegap。然后我通过 cordova create HelloWorld mynamespace.helloworld HelloWorld 创建了一个 HelloWorld 应用程序。效果很好!然后我将工作目录更改为 HelloWorld,并尝试通过 cordova platform add android -d 为 android 构建应用程序,但没有成功。这是输出:

Installing cordova library for android...
Requesting {"uri":"https://git-wip-us.apache.org/repos/asf?p=cordova-android.git;a=snapshot;h=3.3.0;sf=tgz"}...
Downloading cordova library for android...
Downloaded, unzipped and extracted 541065 byte response.
Download complete
Installing cordova library for android...
Checking if platform "android" passes minimum requirements...
Creating android project...
Running bin/create for platform "android" with command:     ""C:\Users\marcos.pacheco\.cordova\lib\android\cordova\3.3.0\bin\create"  "C:\Dev\HelloWorld\platforms\android" "mynamespace.helloworld" "HelloWorld"" (output to follow)


C:\Users\marcos.pacheco\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:126
                throw e;
                      ^
Error: An error occured during creation of android sub-project.

at C:\Users\marcos.pacheco\AppData\Roaming\npm\node_modules\cordova\src\platform.js:244:30
at exithandler (child_process.js:633:7)
at ChildProcess.errorhandler (child_process.js:649:5)
at ChildProcess.EventEmitter.emit (events.js:95:17)
at Process.ChildProcess._handle.onexit (child_process.js:787:12)

我用谷歌搜索并发现 whitespaces 存在一些问题,但我的项目位于 C:\Dev\HelloWorld 路径中,而我的 android sdk 位于 PATH 中,所以当我在 Windows 提示符下键入 adb 时,我会得到命令的帮助信息以及 Java 和 Ant。此外,我设置了 ANT_HOMEJAVA_HOMEANDROID_HOME。我还删除了 %HOMEPATH% 目录中的 ** .cordova ** 文件夹并再次输入命令,但错误仍然存​​在。

可能出了什么问题?

【问题讨论】:

  • 如果在命令行中输入“android”会发生什么?它是否会弹出 SDK 管理器并显示您已安装工具和平台工具?你能输入'android'然后Tools-->manage AVDs-->(如果没有的话,创建一个新的AVD)?你有没有将node_modules目录添加到你的路径中?
  • @MBillau 当我在提示符下键入 android 时,它显示以下消息:''xcopy' 未被识别为内部或外部命令、可运行程序或批处理文件。错误:SWT 文件夹“lib\x86_64”不存在。请设置 ANDROID_SWT 指向包含您平台的 swt.jar 的文件夹。'
  • 嗯 XCOPY 肯定需要找到,因为很多 node.js 文件都在使用它。如果您键入“where xcopy”,如果安装了 xcopy,它应该打印出一个文件。如果您键入xcopy 并没有得到任何东西,您将需要从某个地方下载 xcopy.exe,然后将其添加到您的路径中。奇怪的是您没有安装 xcopy - 也许它以某种方式被删除或从未添加到您的 PATH 中。你能粘贴你的PATH变量吗?
  • @MBillau 你说得对,xcopy 不在我的路径中。我刚刚将 %SystemRoot%\System32 添加到 PATH 中,它起作用了!现在,当我在提示符下键入 android 时,它会打开 SDK 管理器。
  • 太好了,现在可以cordova platform add android 了吗?您可能需要通过 SDK 管理器创建 AVD。

标签: android cordova


【解决方案1】:

XCOPY 需要定义并在您的路径中找到,因为它被内部 node.js 脚本用来移动东西。

您的机器上可能已经有 xcopy.exe。您应该能够将 %SystemRoot%\System32 添加到您的 PATH 中,它会起作用。或者你可以打开一个终端并输入where xcopy 来查看你的xcopy.exe 的实际路径。

我猜想在路径上有 XCOPY 是设置和安装 Android 的必要条件,但如果 Cordova 检查以确保您在某处有 XCOPY...

【讨论】:

  • 你能解释一下吗..?我会 where xcopy 并在我的 PATH 变量中的 'C:\Windows\System32\xcopy.exe. So I appended ;C:\Windows\System32' 中找到它。但仍然出现同样的错误。
  • 嗨@shashwat,你确定你得到关于xcopy的同样错误吗?你在为你的命令行使用一些特殊的东西吗?你能在你使用的shell(mysgit、cmd或其他)中回显PATH,看看它是否是同一个PATH?如果您使用的是 Windows 7,则使用哪个用户(用户或管理员)来设置环境变量可能很重要...
猜你喜欢
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2019-12-23
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多