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,直到几分钟前,你的问题和你一样。
我注意到的两件事是我在安装时错过了:
-
Android版本应该是19,你应该可以在控制台input“android”,看到一些输出或者看到一个窗口popup。 确保将path添加到android.jar所在的文件夹中,并将ANDROID_HOME设置为同一path。 通常情况下,你可以在你的.bashrc文件或/ etc / environment中执行此操作。如果你编辑这两个文件中的任何一个,你需要'source〜/ .bashrc'或者重新打开你的terminal强制它重新加载文件。 input“android”以确保其工作。
-
我观察到,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”
- Android Dalvik上可以使用哪些编程语言?
- Dagger2依赖 – Gradle
- 如何在Android中读取文本文件?
- Android中的本地通知?
- 在android中使用相机意图获取拍摄图像的path
- 在Android中对base64string中的位图对象进行编码和解码
- Android:如何通过意图与Facebook上的文字分享图像?
- 使用ApplicationContext的inflater时不应用主题/样式
- android.graphics.drawable.ColorDrawable不能转换为android.support.v7.widget.RoundRectDrawableWithShadow