我在linux(ubuntu 12.04)机器上构建phonegap android应用程序时遇到错误。
我已经安装了nodejs,将JAVA_HOME,ANT_HOME,ANDROID_HOME变量和$ JAVA_HOME / bin,$ ANT_HOME / bin,$ ANDROID_HOME / tools,$ ANDROID_HOME / platform-tools设置为路径。当我运行命令phonegap local build android
时,我收到以下错误:
ME@My-PC:/dos/PhoneGap/HelloWorld$ phonegap local run android
[phonegap] compiling Android...
[error] An error occurred while building the android project.
module.js:340
throw err;
^
Error: Cannot find module 'shelljs'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/dos/PhoneGap/HelloWorld/platforms/android/cordova/lib/build.js:22:15)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
感谢帮助
答案 0 :(得分:36)
你必须
$cordova platform remove android
$cordova platform add android
因为
中缺少目录平台/机器人/科尔多瓦/ node_modules / shelljs
或者您可以创建另一个应用并复制丢失的文件并将其添加到您的应用中
最近的解决方案
终端中的转到您的应用 然后
cd platforms/android/cordova
sudo npm install shelljs
它和我一起工作
答案 1 :(得分:7)
我已经安装了shelljs:
sudo npm install shelljs -g
但我需要设置NODE_PATH
export NODE_PATH=/usr/local/lib/node_modules
不确定为什么会遗漏......
答案 2 :(得分:2)
我需要将 cordova-android 引擎(从3.5.1更新)更新到3.6.0(因为启动画面插件需要here)
要构建Android项目(并逐出上述错误),我已在({1}}文件(我的Cordova项目根文件夹)中添加了以下 npm 依赖项:
package.json
答案 3 :(得分:0)
我在OS X 10.9上为我的phonegap android应用程序收到完全相同的错误消息。问题是我错误地设置了JAVA_HOME
变量。一旦它是正确的,我需要删除并添加在cordova中的Android平台。这可能是你的问题,所以这就是我修复它的方法:
在我的.zshrc文件中添加了行export JAVA_HOME=$(/usr/libexec/java_home)
最后我不得不删除平台并再次添加它,以便cordova正确使用java。
$ cordova platform remove android
$ cordova platform add android
注意:在排除故障时,我安装了JDK,这可能是必要的。
答案 4 :(得分:0)
我建议您确保运行所需的lib:
sudo npm install -g cordova gulp
答案 5 :(得分:0)
问题在于目录和用户权限。我在主目录中创建了该项目,它正在运行。