0

所以我要疯了 - 谈到cordova/phonegap时似乎是无止境的。

在 Mac OS X 小牛上,我正在尝试将 android 添加为平台...

所以自然而然的去...

$ cordova platform add android

我得到这个错误...

Creating android project...
Error: An error occured during creation of android sub-project. 

/Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: The command "android" failed. Make sure you have the latest Android SDK installed, and the "android" command (inside the tools/ folder) is added to your path.
    at /Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/lib/check_reqs.js:85:29
    at _rejected (/Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:808:24)
    at /Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:834:30
    at Promise.when (/Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:1079:31)
    at Promise.promise.promiseDispatch (/Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:752:41)
    at /Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:574:44
    at flush (/Users/jasonstockton/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:415:13)

    at /usr/local/lib/node_modules/cordova/src/platform.js:282:30
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:743:16)
    at Socket.<anonymous> (child_process.js:956:11)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Pipe.close (net.js:466:12)

在您继续给我“您需要添加路径”响应之前。我已经这样做了(因此我失去了理智)。

我的 .bash_profile 看起来像这样......

export PATH=/usr/local/bin:$PATH
export PATH=${PATH}:/Development/adt-bundle-mac/sdk/platform-tools:/Development/adt-bundle-mac/sdk/tools
export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH

注意第二行是平台工具。我也试过把其他物品拿出来,但没有运气。每次更新后我都调用 source ~/.bash_profile - 也重新启动了终端和计算机,但没有运气。

为了谨慎起见,我通过终端检查了所有文件,以防万一发生了不可能的事情,而 Finder 在目录上撒谎。文件似乎都在那里...

Jasons-MacBook-Pro:~ jasonstockton$ cd Development/adt-bundle-mac/sdk/platform-tools
Jasons-MacBook-Pro:platform-tools jasonstockton$ ls
NOTICE.txt      adb         api         fastboot        source.properties   systrace
Jasons-MacBook-Pro:platform-tools jasonstockton$ cd 
Jasons-MacBook-Pro:~ jasonstockton$ cd Development/adt-bundle-mac/sdk/tools
Jasons-MacBook-Pro:tools jasonstockton$ ls
Jet         apps            emulator-arm        emulator64-x86      lib         proguard        traceview
NOTICE.txt      ddms            emulator-mips       etc1tool        lint            source.properties   uiautomatorviewer
adb_has_moved.txt   dmtracedump     emulator-x86        hierarchyviewer     mksdcard        sqlite3         zipalign
android         draw9patch      emulator64-arm      hprof-conv      monitor         support
ant         emulator        emulator64-mips     jobb            monkeyrunner        templates

然后我继续谷歌搜索,发现另一条建议也建议更新 .profile 文件。我的 .profile 文件看起来像这样......

PATH=$PATH:/Development/adt-bundle-mac/sdk/platform-tools:/Development/adt-bundle-mac/sdk/tools
export PATH

仍然得到同样的错误。我尝试在其他应用程序上运行呼叫,但仍然遇到问题。

我在其他地方读到调用 set 来查看它是否真的被设置了......这就是我设置的路径的样子......

PATH=/Applications/MAMP/bin/php/php5.5.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Development/adt-bundle-mac/sdk/platform-tools:/Development/adt-bundle-mac/sdk/tools

如果有人能阐明我可能做错了什么,那就太棒了!我非常迷茫和困惑。该应用程序已为 iOS 做好准备,只是想为 android 制作一个版本。应该直截了当...

提前感谢你的帮助!

4

1 回答 1

1

我从您的答案中的其他信息推断,但您已经添加了路径

/Development/adt-bundle-mac/sdk/platform-tools

稍后在您的命令行输出中,您显示您在“~”和 cd 到“开发/...”。这意味着 Development 文件夹位于您的用户文件夹中。

如果是,那么您添加到 PATH 的目录不正确,因为它是从驱动器根目录开始的绝对路径。

尝试将 bash 配置文件片段中的中间行更改为

export PATH=${PATH}:~/Development/adt-bundle-mac/sdk/platform-tools:~/Development/adt-bundle-mac/sdk/tools

或包含您的用户文件夹的绝对路径。

重新启动 bash shell 并通过在 bash shell 中键入“android”来检查 android 命令是否可用。

您还需要安装 Ant 和 Java SDK 以确保在添加 android 平台后可以构建您的项目。

您的 Ant 路径和 Java 编译器 (javac) 的位置也必须添加到 PATH。

如果您使用 Adob​​e 的 Cordova PhoneGap 发行版,则可以使用PhoneGap Build云服务。这将为 iOS、Android 和 Windows 构建您的应用程序,而无需设置任何特定于这些平台的本地 SDK。还有一个可用的 RESTful API,允许您从命令行调用构建功能。

于 2014-02-15T21:11:35.480 回答