无法从命令行构建Phonegap项目

时间:2013-11-26 12:11:15

标签: android node.js cordova phonegap-build

我已经构建了一个Phonegap应用程序,现在正尝试将其与Phonegap Build集成。我正在遵循非常简单的指南here

所以我在做:

sudo npm install -g phonegap
sudo phonegap create hello com.example.hello HelloWorld
cd hello

sudo phonegap local build android

最后一个命令导致错误:

The command `android` failed. Make sure you have the latest Android SDK installed, and the `android` command (inside the tools/ folder) added to your path. Output: /bin/sh: 1: android: not found
然后我做了:

which android

结果:

/home/mark/Development/adt-bundle-linux-x86_64-20130522/sdk/tools/android

这是正确的路径。

phonegap版本为3.1.0-0.15.0。

为什么我收到此错误的任何想法?

修改 如果我跑:

sudo phonegap local build /home/mark/Development/adt-bundle-linux-x86_64-20130522/sdk/tools/android 

我又得到了一个错误:

/usr/local/lib/node_modules/phonegap/lib/phonegap/local.build.js:141
    platformPath = path.join('.', 'platforms', platform.local);
                                                       ^
TypeError: Cannot read property 'local' of undefined
at LocalBuildCommand.module.exports.addPlatform (/usr/local/lib/node_modules/phonegap/lib/phonegap/local.build.js:141:60)
at LocalBuildCommand.execute (/usr/local/lib/node_modules/phonegap/lib/phonegap/local.build.js:95:32)
at LocalBuildCommand.run (/usr/local/lib/node_modules/phonegap/lib/phonegap/local.build.js:70:10)
at Object.build (/usr/local/lib/node_modules/phonegap/lib/phonegap/util/command.js:28:25)
at CLI.module.exports (/usr/local/lib/node_modules/phonegap/lib/cli/local.build.js:34:20)
at CLI.module.exports [as argv] (/usr/local/lib/node_modules/phonegap/lib/cli/argv.js:66:17)
at Object.<anonymous> (/usr/local/lib/node_modules/phonegap/bin/phonegap.js:24:21)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)

3 个答案:

答案 0 :(得分:1)

安卓版本的android sdk将adb移动到平台工具。尝试在您的路径中包含工具和平台工具。见

  

〜/ Tools / adt-bundle-linux-x86_64-20131030 / sdk $ cat tools / adb_has_moved.txt
  adb工具已移至platform-tools /

     

如果您在SDK中没有看到此目录,请启动SDK和AVD   经理(执行android工具)并安装“Android SDK   平台的工具“

     

请同时更新您的PATH环境变量以包含   platform-tools /目录,因此您可以从任何位置执行adb。

我使用以下导出命令。

export ANDROID_BUNDLE_HOME="$ATILLA_TOOLS/adt-bundle-linux-x86_64-20131030"
export ANDROID_SDK_HOME="$ANDROID_BUNDLE_HOME/sdk"
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

export PATH=$PATH:$ANDROID_SDK_HOME/tools
export PATH=$PATH:$ANDROID_SDK_HOME/platform-tools

adb和android都应该在命令行中运行。也尝试使用

phonegap local build android

没有sudo。

参见以下示例

 $phonegap create deneme1 
[phonegap] created project at /home/atilla/Projects/Denemeler/a/deneme1 
 $cd deneme1/ 
 $phonegap local build android
[phonegap] adding the Android platform... 
[phonegap] compiling
Android... [phonegap] successfully compiled Android app

在此成功消息之后尝试找到您的平台和apk文件。

 $ls -al platforms/ 
 $ls -al platforms/android/ 
 $ls -al platforms/android/bin

你应该在这个目录中看到HelloWorld-debug.apk。

  

-rw-r - r-- 1 atilla atilla 1542462 Ara 5 14:31 HelloWorld-debug.apk

答案 1 :(得分:0)

尝试将您的Android路径添加到PATH环境变量。

如果您使用Linux,请先尝试:

echo $PATH

此命令显示您的PATH变量,在此处搜索Android路径。 如果您没有看到android路径,则需要在环境变量上添加该路径。 试试这个:

echo 'export PATH=$PATH:/home/user/mis_prog' >> /home/user/.bashrc

您必须编辑登录shell的配置文件。 由于BASH shell通常使用最多,因此您必须编辑/home/user/.bashrc。

为此,您将使用文本编辑器或仅使用命令来简化任务。

如果您使用某些Windows版本,则可以从系统属性中编辑环境变量PATH,如下所示:http://www.computerhope.com/issues/ch000549.htm

答案 2 :(得分:0)

使用sudo安装phonegap npm全局包,没关系。 但是你应该用你自己的用户运行phonegap

sudo npm install -g phonegap
phonegap create hello com.example.hello HelloWorld
phonegap local build android

使用sudo执行,您将切换到root用户,因此$ PATH的环境变量不一定相同。

相关问题