最近一直想搞 cordova ,但問題多多,網上找了不少資料,但也沒多大進展。如今彙總下最近看的東西,若是有什麼不清楚能夠點擊原文地址去查看。html
一. 安裝Node.js基本環境node
官網下載地址:https://nodejs.org/linux
安裝成功以後可使用簡單命令查看其版本android
node -v
npm相關命令ios
node cli.js install npm -gf //安裝最新的NPM node cli.js install npm@1.0.105 -gf //能夠安裝指定版本的NPM
安裝Ant:http://ant.apache.org/git
安裝Git: http://git-scm.com/apache
下載Android SDK 以及開發工具,目前有Android Studio 工具比較方便npm
共享一個Android SDK下載地址: http://pan.baidu.com/s/1i3vjl8Twindows
二. 安裝Cordovabash
安裝最新版本的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
這篇文章主要介紹下使用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開發環境
我是Mac系統,網上大多都是linux和windows的教程,這裏我就不考慮了,我只記錄mac下搭建過程
請在官方網站下載SDK
http://developer.android.com/sdk/index.html
下載好壓縮包並解壓縮後,根目錄會有兩個子目錄,分別爲
將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
|
那到這裏就完事了嗎?朋友,告訴你,還沒到一半,接着往下看吧
安裝ant(若是你沒有安裝過的話)
這裏我經過Mac的homebrew進行安裝,若是你不瞭解能夠看看這篇文章
在終端裏,執行下面命令安裝ant
1
|
brew
install
ant
|
安裝SDK
執行下面命令,打開 Android SDK Manager
1
|
android ;
exit
;
|
傻眼了吧,這麼多,裝哪些?別急,我也傻眼了,因此中間裝了好多才成功,我這裏總結下,可是可能不對,可是管他呢,做爲初學者,這樣至少能成功。若是你有好的文章,能夠推薦給我。
若是你沒法安裝SDK,報dl-ssl鏈接不上的錯,那麼你可參考下面的文章修改本地HOSTS
我安裝的SDK以下:
Tools下全部SDK,都安裝了
沒有緣由,都裝,我這裏十來個,不知道幹嗎的
Android L (API 20, L preview)
我本地的cordova當前使用的SDK是4.4.2,可能還沒來得及更上版本,可是我看默認選中了幾個項目,因此我這裏就按照默認選中的那幾項安裝,包含有
Android 4.4w (API 20)
Android 4.4.2 (API 19)
上面的目錄只是做爲參考,並非絕對的,最主要的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模擬器?
你能夠將其當作爲虛擬機,能夠根據操做系統,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
|
我這裏爲何選擇4?
做爲初學者,我也不知道選什麼,可是我直覺告訴我有這麼幾個緣由
若是你也像我同樣不知道如何選擇,那麼你能夠一個個試試看
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項目所使用
解決辦法:
以上內容摘錄於:http://levi.yii.so/archives/3587