2013-12-13 186 views
49

更新1:的PhoneGap /科尔多瓦的Android开发

这一切,我到底做了:

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 

当时任何的不是neccessary?


原题:与NPM和科尔多瓦

在我的Ubuntu 12.04的电脑,我刚刚安装的node.js:

$ node -v 
v0.10.23 

$ npm -v 
1.3.17 

$ cordova -v 
3.3.0-0.1.1 

当我尝试添加机器人:

$ 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相同的问题。

+0

相同的错误/问题[cordova平台添加android不工作,而上市Android目标](http://stackoverflow.com/questions/20323787/cordova-platform-add-android-not-working-while-listing-android-目标) – givanse

+0

可能重复的[科尔多瓦平台添加android错误](http://stackoverflow.com/questions/20897115/cordova-platform-add-android-error) –

回答

88

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

按照PhoneGap的文档(http://docs.phonegap.com/en/2.9.0/guide_getting-started_android_index.md.html),您需要包括了Android SDK的工具平台的工具在PATH环境变量

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

其中Development是您安装SDK的路径。

+0

仅供参考,我在窗户上,我添加了这两个文件夹到我的路上。但是,Windows会将路径变量修剪为特定长度,因此不包含完整的文件夹路径。将adt内容移动到“c:\ adt”中以缩短路径并且工作正常。 –

+0

谢谢!这对我来说很有效(花费了好几个小时的调试之后究竟发生了什么问题......)。 –

+0

非常感谢您解决我的问题。再次感谢。 – emaleavil

0

的Android

Android的命令行工具在shell脚本建。您必须在您的PATH中安装Android SDK的工具和平台工具文件夹!

创建项目

运行具有以下参数的创建命令:

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 
-2

它可以为你的科尔多瓦安装已损坏尝试删除你的文件夹.cordova“RM -R〜/ .cordova“ 再次运行”cordova platform add android“

0

看起来这个错误也可能是由于没有兼容的Android SDK版本(目前为4.2)而导致的。

5

我正在运行Ubuntu 12.04,直到几分钟前遇到同样的问题。

的两件事情我已经注意到,我在安装过程中错过了:

  1. 的Android版本应该是19,你应该能够在控制台输入“机器人”,看到一些输出或见一个窗口弹出。确保你将android.jar所在文件夹的路径添加到PATH变量中,并将ANDROID_HOME设置为同一路径。通常,您可以在.bashrc文件或/ etc/environment中执行此操作。如果您编辑这些文件中的任何一个,则需要'source〜/ .bashrc'或重新打开终端以强制它重新加载文件。键入'android'以确保其工作。

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

例如:Android的分配路径:

/opt/android/ 

,它试图写的路径:

/opt/android/sdk/add-ons 

一旦我做了,我是能够得到过去的问题,你上面已经指出。

+1

我建议你将问题重命名为“Android,科尔多瓦3.3.0 - 无法创建子项目“或类似的东西。目前的标题不是描述性的,很多人似乎都有这个问题。 – evolvingfaster

1

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

尝试删除主页// cordova目录并重新执行此操作cordova平台在您的cordova项目中添加android

请确保您有PATH的源代码/平台工具和/工具。

+0

这或多或少只是接受的答案也是如此。 – Dirk

10

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

为此,您需要ANT被安装,一个JAVA JDK和Android的SDK安装

JAVA_HOME(C:\ Program Files文件\的Java \ JDK)

ANT_HOME({蚂蚁位置} \阿帕奇\ Apache的蚂蚁)

ANDROID_HOME({Android SDK中的位置} \ Android的SDK)

这些添加到如%ANT_HOME%/ bin中你的PATH变量;%ANDROID_HOME%\工具;%ANDROID_HOME%\平台 - 工具;%JAVA_HOME%\ bin

关闭并重新打开您的cmd并再次运行您的命令。

+1

最初的问题是关于Ubuntu,但是这为我在Windows 8上解决了同样的问题。 – BiscuitBaker

+2

这完美地运行在Windows 8上。谢谢! – Tarik

+0

我设置PATH等,仍然得到这个错误。请帮助这里: http://stackoverflow.com/questions/26783594/phonegap-cordova-build-android-node-modules-qq-js-throw-e – mylord

0

我使用科尔多瓦。 2天我有同样的问题“的Java,蚂蚁,机器人,科尔多瓦,命令测试是确定的,但 运行科尔多瓦平台添加的android告诉我错误:同时列出Android的目标出现错误”。 现在我使用的fixit: “搭配chmod 777蚂蚁和Android SDK中的地方” ,那么它会工作。 我使用的是Ubuntu 14。04 32位,

0

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

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

还要确保你没有使用sudo到Android添加为平台

这是不正确的默认安装科尔多瓦

sudo cordova platform add android 

只是做

cordova platform add android 
0

我为此搜索了很多东西,而且我的工作是将shell变量$ANDROID_HOME设置为我的adt-bundle目录中的sdk/文件夹的路径。使用export来做到这一点:

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

祝你好运!

0

不知道别人是否有这个问题,但是当我删除并再次添加我的平台时,我意识到在我的config.xml中我有<icon src='...'>和src里面的路径是错误的。

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

当我修复路径后,它工作正常。

相关问题