PhoneGap /cordovaAndroid开发

更新1:

这是我最后做的一切:

sudo aptitude install -y python-software-properties python g++ make sudo add-apt-repository -y ppa:chris-lea/node.js sudo aptitude update sudo aptitude install nodejs sudo aptitude install npm sudo npm install -g cordova sudo npm install -g phonegap phonegap create my-app cd my-app export PATH=${PATH}:/home/oshirowanen/Downloads/adt-bundle-linux-x86_64-20131030/sdk/platform-tools:/home/oshirowanen/Downloads/adt-bundle-linux-x86_64-20131030/sdk/tools sudo aptitude install ant cordova platform add android android create avd --name my_and --target 1 phonegap run android 

有没有不必要的?


原文问题:

在我的Ubuntu 12.04电脑上,我刚刚用npm和cordova安装了node.js:

 $ node -v v0.10.23 $ npm -v 1.3.17 $ cordova -v 3.3.0-0.1.1 

当我尝试添加android:

 $ cordova platform add android 

我得到以下输出:

 Creating android project... /usr/lib/node_modules/cordova/node_modules/q/q.js:126 throw e; ^ Error: An error occured during creation of android sub-project. /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:126 throw e; ^ Error: An error occurred while listing Android targets at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/lib/check_reqs.js:87:29 at _rejected (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:808:24) at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:834:30 at Promise.when (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:1079:31) at Promise.promise.promiseDispatch (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:752:41) at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:574:44 at flush (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:108:17) at process._tickCallback (node.js:415:13) at /usr/lib/node_modules/cordova/src/platform.js:244:30 at ChildProcess.exithandler (child_process.js:641:7) at ChildProcess.EventEmitter.emit (events.js:98:17) at maybeClose (child_process.js:735:16) at Socket.<anonymous> (child_process.js:948:11) at Socket.EventEmitter.emit (events.js:95:17) at Pipe.close (net.js:466:12) 

任何人都知道这是为什么发生,如何解决?

PhoneGap遇到同样的问题。

Android工具二进制文件可能不在您的path中。

根据PhoneGap文档( http://docs.phonegap.com/en/2.9.0/guide_getting-started_android_index.md.html ),您需要在您的PATH环境variables中包含Android SDK的工具平台工具

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

开发是您安装SDK的path。

从adt \ sdk \ tools文件夹运行“android”命令并安装最新的Tools和SDK。 还要确保你的PATH有正确的variables。

为此,您需要安装ANT,安装JAVA JDK和Android SDK

JAVA_HOME(C:\ Program Files \ Java \ jdk)

ANT_HOME({ant位置} \ apache \ apache-ant)

ANDROID_HOME({android sdk location} \ android-sdk)

将这些添加到您的PATHvariables,如%ANT_HOME%/ bin;%ANDROID_HOME%\ tools;%ANDROID_HOME%\ platform-tools;%JAVA_HOME%\ bin

closures并重新打开你的CMD并再次运行你的命令。

我正在运行Ubuntu 12.04,直到几分钟前,你的问题和你一样。

我注意到的两件事是我在安装时错过了:

  1. Android版本应该是19,你应该可以在控制台input“android”,看到一些输出或者看到一个窗口popup。 确保将path添加到android.jar所在的文件夹中,并将ANDROID_HOME设置为同一path。 通常情况下,你可以在你的.bashrc文件或/ etc / environment中执行此操作。如果你编辑这两个文件中的任何一个,你需要'source〜/ .bashrc'或者重新打开你的terminal强制它重新加载文件。 input“android”以确保其工作。

  2. 我观察到,cordova安装脚本正试图将文件写入到Android SDK的子目录“附件”中。 该目录在Android 19发行版中不存在。 因此,我手动创build了它,并使其可由我的用户帐户写入。

例如:Android分发path:

 /opt/android/ 

它试图写入的path:

 /opt/android/sdk/add-ons 

一旦我这样做了,我能够克服上面提到的问题。

它看起来像您的主目录中的cordova和orid库文件已损坏。

尝试删除家庭/ /cordova目录,并再次这样做cordova平台在您的cordova项目中添加Android

确保你有源代码/平台工具和/工具到PATH。

Android的

Android命令行工具build立在shell脚本之上。 您必须在您的PATH中拥有Android SDK的工具和平台工具文件夹!

创build一个项目

使用以下参数运行create命令:

 Path to your new Cordova Android project Package name, following reverse-domain style convention Main Activity name $ /path/to/cordova-android/bin/create /path/to/my_new_cordova_project com.example.cordova_project_name CordovaProjectName 

它看起来像这个错误也可能是由于没有一个兼容的Android SDK版本(在4.2)。

我使用cordova。 2天我有同样的问题“Java,ant,安卓,cordova,命令testing是好的,但运行cordova平台添加Android显示错误:上市Android目标时发生错误 ”。 现在我修复使用: “chmod 777ant和android sdk的地方” ,那么它将工作。 我用的是Ubuntu 14.04 32bit,

如果问题仍然存在,请确保您有正确的权限尝试

 sudo chmo-R 777 /home/your-user-name/.cordova/ 

另外请确保您没有使用sudo将Android作为平台

这在默认的Cordova安装中不正确

 sudo cordova platform add android 

做就是了

 cordova platform add android 

我已经search了很多,而我的工作是将shellvariables$ANDROID_HOME设置为android的我的adt-bundle目录中的sdk/文件夹的path。 使用export来做到这一点:

export ANDROID_HOME="/Users/YOUR_USER/Developer/adt-bundle/sdk/"但一定要改变目录以符合你的要求。

祝你好运!

不知道是否有其他人有这个问题,但当被删除,并再次join我的平台,我意识到在我的config.xml我有<icon src='...'>和src里面的path是错误的。

这是我再次添加平台时收到的错误输出: cp: no such file or directory: C:\Users\{pathtofile}.png

固定path后,它工作正常。

可能是你的cordova安装已经损坏尝试删除你的.cordova文件夹“rm -R〜/ .cordova”并再次运行“cordova platform add android”