2015-03-13 110 views
7

当我建立与科尔多瓦任何Android应用程序,它失败的Visual Studio科尔多瓦构建失败

TypeError: Cannot read property 'prepEnv' of undefined.

我已经做了所有的故障诊断和检查环境变量(按MS文档)

我发现是,如果我从我的项目文件夹中调用bld\Debug\platforms\android\cordova\build --ant --debug,构建工作。

但是当我打电话给"C:\Users\<user>\AppData\Roaming\npm\\node_modules\vs-mda\vs-cli.cmd" build --platform Android --configuration Debug --projectDir . --rojectName Gappy --npmInstallDir C:\Users\<user>\AppData\Roaming\npm --language en-US --buildTarget AndroidDevice时,构建失败。

第二种方法的其中一个步骤是调用第一批文件。

VS2013和VS2015发生这种情况。 64和32位版本的Node.JS

任何帮助/想法?

+0

你能后的诊断生成日志。 转至工具 - >选项 - >项目和解决方案 - >生成并运行,将MSBuild项目“生成输出详细度”更改为诊断。 重建项目之后 - 应该有额外的信息 - 可以帮助您解决问题。 – MarkP 2015-03-16 14:07:54

+0

我对这个输出有同样的错误: – 2015-03-16 21:04:23

+0

> command:D:\ cordova \ build.bat --debug --ant > D:\ cordova \ node_modules \ q \ q.js:126 > throw e; >^ > TypeError:无法在D:\ cordova \ build中读取Object.module.exports.run(D:\ cordova \ lib \ build.js:326:19)处未定义的 >属性'prepEnv' > (D:\ cordova \ node_modules \ q \ q.js:798:54) > at self.promiseDispatch.done(D:\ cordova \ node_modules \ q \ q.js:827:在D:\ cordova \ node_modules \ q \ q.js:574:44 > at Promise.promise.promiseDispatch(D:\ cordova \ node_modules \ q \ q.js:760:13) > flush(D:\ cordova \ node_modules \ q \ q.js:108:17) > at process._tickCallback(node.js:355:11) – 2015-03-16 21:13:20

回答

15

我注意到,构建文件被称为differnetly取决于路径解决方案是否包含空格:

1> ------建立配置选项: 1>运行命令:C:\项目\ Mobile \ AppSolutionName \ AppSolutionName \ bld \ Debug \ platforms \ android \ cordova \ build.bat --debug --ant

1> ------构建配置选项:--debug 1>运行命令:cmd“/ s/c”“C:\ Projects \ Mobile Apps \ AppSolutionName \ AppSolutionName \ bld \ Debug \ platforms \ android \ cordova \ build.bat”--debug --ant“”

它有效,如果有空格,并且它失败,并且“TypeError:无法读取未定义的属性'prepEnv',如果没有。我不知道这是否特定于我的环境,但是我现在可以建立的路径中有空间。

+0

哇,这个工程!你只是畅通无阻,谢谢!我填补了这个bug:https://connect.microsoft.com/VisualStudio/feedback/details/1192337/tools-for-apache-cordova-ctp-3-1-cant-build-for-android – 2015-03-20 14:07:42

+2

花了我两个小时弄清楚,但我没有时间进一步挖掘。很高兴我能帮上忙,让我们希望它得到解决。 – 2015-03-20 15:48:13

+0

我将此标记为解决方案,直到bug修复为止。 – 2015-03-21 11:57:49

0

在Mac OS X中的优胜美地:

清洁项目,并使用sudo重建它的固定对我来说。

/路径/到/你/项目 /平台/安卓/科尔多瓦文件夹:

sudo ./clean 
sudo ./build --release 
相关问题