最近一直想搞 cordova ,但問題多多,網上找了很多資料,但也沒多大進展。現在匯總下最近看的東西,如果有什么不清楚可以點擊原文地址去查看。
一. 安裝Node.js基本環境
官網下載地址:https://nodejs.org/
安裝成功之后可以使用簡單命令查看其版本
node -v
npm相關命令
node cli.js install npm -gf //安裝最新的NPM node cli.js install npm@1.0.105 -gf //可以安裝指定版本的NPM
安裝Ant:http://ant.apache.org/
安裝Git: http://git-scm.com/
下載Android SDK 以及開發工具,目前有Android Studio 工具比較方便
共享一個Android SDK下載地址: http://pan.baidu.com/s/1i3vjl8T
二. 安裝Cordova
安裝最新版本的Cordova
npm install -g cordova
安裝指定版本的Cordova
npm install -g cordova@4.0.0
查看Cordova的基本信息情況
npm info cordova
更新Cordova版本
npm update cordova -g
更多命令請查看官網
三. 創建一個解決方案
指定一個工作目錄,然后再cmd命令行總進入這個目錄,比如M:\Android\PhoneGap0602
cd M:\Android\PhoneGap0602
創建一個解決方案,使用如下命令,創建成功之后你會發現里面創建了bertphone文件夾
cordova create bertphone com.yourname.myapp BertPhone
進入工程目錄
cd bertphone
添加對平台的支持
cordova platforms add android
添加插件的支持
cordova plugin add org.apache.cordova.device cordova plugin add org.apache.cordova.console
以上內容摘錄於:http://www.cnblogs.com/qingyuan/p/4557715.html
如何創建Android 應用
這篇文章主要介紹下使用cordova創建Android的應用。原本我認為應該和ios一樣簡單,不過后面我發現錯了,不是我想象中那樣。我將我搭建的過程記錄下來,作為經驗記錄,也希望對需要的朋友起到或多或少的幫助。
如果說不考慮Android本身的SDK以及虛擬機的話,使用cordova創建Andorid應用會向下面這般簡單
1
2
3
4
5
6
7
8
9
10
11
|
# 進入app根目錄
cd
my-app
# 檢查支持平台,如果有android,說明你可以開發android應用
cordova platforms list
# 創建應用
cordova platform add android
# 啟動虛擬機
cordova emulate android
|
但是,這個前提是你本身已搭建好了Android開發環境,如果沒有,抱歉,你會和我一樣出現類似下面的錯誤提示:
Error: The command “android” failed. Make sure you have the latest Android SDK installed
怎么辦呢?參考官方的文檔 [點擊查看],下面開始說說搭建Android開發環境
搭建Android開發環境
我是Mac系統,網上大多都是linux和windows的教程,這里我就不考慮了,我只記錄mac下搭建過程
第一步、下載SDK
請在官方網站下載SDK
http://developer.android.com/sdk/index.html
第二步、設置SDK環境
下載好壓縮包並解壓縮后,根目錄會有兩個子目錄,分別為
- eclipse:編輯器
- sdk:SDK目錄
將SDK目錄拷貝到指定位置,我這里設置到Mac當前用戶的家目錄
1
|
cp
/adt-bundle-mac-x86_64-20140702/sdk
~
/Development/adt-bundle
|
設置PATH環境
1
|
$
vi
~/.bash_profile
|
末尾添加SDK路徑
1
|
export
PATH=${PATH}:$HOME
/Development/adt-bundle/sdk/platform-tools
:$HOME
/Development/adt-bundle/sdk/tools
|
執行生效
1
|
source
~/.bash_profile
|
那到這里就完事了嗎?朋友,告訴你,還沒到一半,接着往下看吧
第三步,安裝環境需要的軟件及SDK
安裝ant(如果你沒有安裝過的話)
這里我通過Mac的homebrew進行安裝,如果你不了解可以看看這篇文章
Mac開發者利器-Homebrew介紹及安裝
在終端里,執行下面命令安裝ant
1
|
brew
install
ant
|
安裝SDK
執行下面命令,打開 Android SDK Manager
1
|
android ;
exit
;
|
傻眼了吧,這么多,裝哪些?別急,我也傻眼了,所以中間裝了好多才成功,我這里總結下,但是可能不對,但是管他呢,作為初學者,這樣至少能成功。如果你有好的文章,可以推薦給我。
如果你無法安裝SDK,報dl-ssl連接不上的錯,那么你可參考下面的文章修改本地HOSTS
不用FQ,即可訪問google等網站hosts,及修改方法
我安裝的SDK如下:
Tools下所有SDK,都安裝了
沒有原因,都裝,我這里十來個,不知道干嘛的
Android L (API 20, L preview)
我本地的cordova當前使用的SDK是4.4.2,可能還沒來得及更上版本,但是我看默認選中了幾個項目,所以我這里就按照默認選中的那幾項安裝,包含有
- SDK Platform Android L preview
- Android TV ARM EABI v7a System image
- Android TV Intel x86 Atom System image
- ARM EABI v7a System image
- Intel x86 Atom System image
Android 4.4w (API 20)
- SDK Platform Android
- Android Wear ARM EABI v7a System image
- Android Wear Intel x86 Atom System image
Android 4.4.2 (API 19)
- SDK Platform Android
- ARM EABI v7a System image
- Intel x86 Atom System image
- Google APIs (x86 System Image)
- Google APIs (ARM System Image)
上面的目錄只是作為參考,並不是絕對的,最主要的SDK是Tools及API19,因為目前cordova使用的SDK就是API19,以后會根據情況改變
幾個我碰到的問題,及解決方法
問題1:
Error: Please install Android target 19 (the Android newest SDK). Make sure you have the latest Android tools installed as well. Run “android” from your command-line to install/update any missing SDKs or tools.
解決方法:安裝 android 4.4.2 sdk
問題2:
This platform has more than one ABI.
這個問題,可能是因為你本地環境中沒有AVD模擬器,而如何創建AVD模擬器,咱稍后說,你先確保相應的SDK是否有安裝好,即android 4.4.2 sdk中的System image。
第四步、創建AVD模擬器
看到現在,你是否和我一樣,有種累覺不愛的感受。表急,這是最后一步了。
什么是AVD模擬器?
你可以將其當做為虛擬機,可以根據操作系統,OS版本而產生的不同的虛擬機
1.查看當前支持版本 (在列出的版本中我們需要記住id值,這個值在第2步中使用):
1
|
android list targets
|
這是我本地情況
Available Android targets: ---------- id: 1 or "android-19" Name: Android 4.4.2 Type: Platform API level: 19 Revision: 3 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in Tag/ABIs : default/armeabi-v7a, default/x86 ---------- id: 2 or "android-20" Name: Android 4.4W Type: Platform API level: 20 Revision: 1 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in, AndroidWearRound, AndroidWearSquare, AndroidWearRound, AndroidWearSquare Tag/ABIs : android-wear/armeabi-v7a, android-wear/x86 ---------- id: 3 or "android-L" Name: Android L (Preview) Type: Platform API level: L Revision: 3 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in Tag/ABIs : android-tv/armeabi-v7a, android-tv/x86, default/armeabi-v7a, default/x86 ---------- id: 4 or "Google Inc.:Google APIs:19" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 7 Description: Android + Google APIs Based on Android 4.4.2 (API level 19) Libraries: * com.google.android.media.effects (effects.jar) Collection of video effects * com.android.future.usb.accessory (usb.jar) API for USB Accessories * com.google.android.maps (maps.jar) API for Google Maps Skins: WXGA720, WVGA854, QVGA, WVGA800 (default), WSVGA, WXGA800-7in, WXGA800, WQVGA432, HVGA, WQVGA400 Tag/ABIs : default/armeabi-v7a ---------- id: 5 or "Google Inc.:Google APIs (x86 System Image):19" Name: Google APIs (x86 System Image) Type: Add-On Vendor: Google Inc. Revision: 7 Description: Android x86 + Google APIs Based on Android 4.4.2 (API level 19) Libraries: * com.google.android.media.effects (effects.jar) Collection of video effects * com.android.future.usb.accessory (usb.jar) API for USB Accessories * com.google.android.maps (maps.jar) API for Google Maps Skins: WXGA720, WVGA854, QVGA, WVGA800 (default), WSVGA, WXGA800-7in, WXGA800, WQVGA432, HVGA, WQVGA400 Tag/ABIs : default/x86
2.1 創建AVD:
1
|
$ android create avd –n AVD-API16 –t 4
|
- -n:AVD的名稱,自定義
- -t:最后的4表示創建Android版本的avd
我這里為什么選擇4?
作為初學者,我也不知道選什么,但是我直覺告訴我有這么幾個原因
- 一定得是 Android 4.4.2 (API level 19)
- 必須是 ARM 而不是Inter Atom,或是X86什么的
如果你也像我一樣不知道如何選擇,那么你可以一個個試試看
2.2 創建帶SD卡的模擬器:
2.2.1 創建鏡像文件
1
|
$ mksdcard 128M sdcard.img
|
2.2.2 創建AVD
1
|
$ android create avd -n AVD-API16 -t 4 -c "The path to SD"
|
3. 查看是否創建成功
1
|
$ android list avd
|
如果成功會顯示剛才我們創建的avd信息
Available Android Virtual Devices: Name: AVD-API16 Path: /Users/liwei/.android/avd/AVD-API16.avd Target: Google APIs (Google Inc.) Based on Android 4.4.2 (API level 19) Tag/ABI: default/armeabi-v7a Skin: WVGA800
4. 啟動AVD模擬器
1
|
$ emulator -avd AVD-API16
|
或者
1
|
$ emulator @AVD-API16
|
5. 刪除AVD模擬器:
1
|
$ android delete avd -n AVD-API16
|
我碰到的問題
在我創建好AVD后,一開始我使用的ID是5,通過cordova啟動Android虛擬機出現錯誤
emulator: Failed to open the HAX device!
說明創建的AVD並不能被cordova項目所使用
解決辦法:
- 刪除剛才創建的AVD
- 創建一個新的AVD,ID為4
以上內容摘錄於:http://levi.yii.so/archives/3587