Android 无法从命令行生成Phonegap项目

Android 无法从命令行生成Phonegap项目,android,node.js,cordova,phonegap-build,Android,Node.js,Cordova,Phonegap Build,我已经构建了一个Phonegap应用程序,现在正试图将其与Phonegap构建集成。我遵循非常简单的指南 因此,我正在做: 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 ha

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

因此,我正在做:

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)
/usr/local/lib/node_modules/phonegap/lib/phonegap/local.build.js:141
platformPath=path.join('.','platforms',platform.local);
^
TypeError:无法读取未定义的属性“local”
在LocalBuildCommand.module.exports.addPlatform(/usr/local/lib/node\u modules/phonegap/lib/phonegap/local.build.js:141:60)
在LocalBuildCommand.execute(/usr/local/lib/node_modules/phonegap/lib/phonegap/local.build.js:95:32)
在LocalBuildCommand.run(/usr/local/lib/node_modules/phonegap/lib/phonegap/local.build.js:70:10)
在Object.build(/usr/local/lib/node_modules/phonegap/lib/phonegap/util/command.js:28:25)
在CLI.module.exports(/usr/local/lib/node_modules/phonegap/lib/CLI/local.build.js:34:20)
在CLI.module.exports[作为argv](/usr/local/lib/node_modules/phonegap/lib/CLI/argv.js:66:17)
反对。(/usr/local/lib/node_modules/phonegap/bin/phonegap.js:24:21)
在模块处编译(Module.js:449:26)
在Object.Module._extensions..js(Module.js:467:10)
在Module.load(Module.js:349:32)

尝试将Android路径添加到路径环境变量中

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

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

echo 'export PATH=$PATH:/home/user/mis_prog' >> /home/user/.bashrc
您必须编辑登录shell的配置文件。 由于通常使用最多的是bashshell,因此必须编辑/home/user/.bashrc

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


如果您使用某些Windows版本,您可以从系统属性编辑环境变量路径是,类似于这样:

用sudo安装phonegap npm全局软件包,没问题。 但是你应该和你自己的用户一起运行phonegap

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

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

以后版本的android sdk将adb移动到了平台工具。尝试在路径中同时包含工具和平台工具。看

~/Tools/adt-bundle-linux-x86\u 64-20131030/sdk$cat Tools/adb\u已移动。txt
adb工具已移至平台工具/

如果在SDK中看不到此目录,请启动SDK和AVD 管理器(执行android工具)并安装“android SDK 平台工具”

还请更新PATH环境变量以包括 平台工具/目录,因此您可以从任何位置执行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


当您在命令行中输入“android”时会得到什么?它会显示android sdk管理器…Ant是否已安装和配置?我刚刚运行了Ant-v,它显示“ApacheAnt(TM)版本1.8.2于2011年12月3日编译,尝试默认构建文件:build.xml Buildfile:build.xml不存在!构建失败”,所以是的,Ant也可以正常工作。有什么想法吗?安卓路径已经到了。当我在任何地方运行“android”时,它会打开SDK管理器。。