所以我疯了 - 当涉及到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制作一个版本。应该是直截了当的......
预先感谢您的协助!
答案 0 :(得分:1)
我正在根据你答案中的其他信息进行推断,但你添加了路径
/Development/adt-bundle-mac/sdk/platform-tools
稍后在命令行输出中显示您处于“〜”并cd到“Development / ...”。这意味着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。
如果您使用Adobe的Cordova PhoneGap分发版,那么您可以使用PhoneGap Build云服务。这将构建适用于iOS,Android和Windows的应用程序,而无需设置任何特定于这些平台的本地SDK。还有一个可用的restful API,允许您从命令行调用构建功能。