如果想要快速上手 cordova 的話, 建議 用現成的 docker 來學 cordova。 這一篇筆記 「苦行僧自力救濟、不靠 docker」 的過程。 本文在 lubuntu 15.04 上, 全程以 root 操作。
- 按照 webupd8 的文章, 安裝 oracle java 8。 [過程中必須同意 Oracle 的非自由授權]
- 安裝 google 的 android sdk: 從 這裡 找到 「SDK Tools Only」 底下的 android-sdk_r*-linux.tgz、 解壓縮、 搬到某個你高興的目錄 (比方說 /opt/android/sdk 好了)。
- 安裝 android sdk 的外掛: 執行 /opt/android/sdk/tools/android 挑幾個外掛來安裝。 我沒有要用 google 的開發環境、 也沒想要用最新的版本, 所以我把最新版 (5.* 或 6.*) 的勾取消掉。 [注意: 但是 Android 5.1.1 (API 22) 似乎 必裝。 詳見留言一] 又根據 統計表 挑選目前可以照顧最多用戶的 4.1.x (API 16) 跟 4.4 (API 19) 而且只勾各版本的 「SDK Platform」 其他什麼 System Image 碗糕都不需要。 (因為我用 android-x86 模擬器 來測試除錯。)
- 在 .bashrc 裡面加上一句:
export ANDROID_HOME=/opt/android/sdk
。 登出再登入。 - 安裝 npm:
apt-get install npm
還要小修正一下:cd /usr/bin ; ln -s nodejs node
。 - 安裝 cordova:
npm install -g cordova
- 如果你的 linux 是 32 bit 的, 那麼現在就可以使用
cordova 指令了; 如果是 64 bit 的系統, 編譯時可能會出錯,
因為 android sdk 是 32 bit 的。 這時需要:
dpkg --add-architecture i386 apt-get update apt-get install libstdc++6:i386 lib32z1
詳見 這個問答。
上一篇使用 docker 快速上手當中, 編譯加測試需要三步:
cordova build ############# adb install ... adb shell am start ...
前一步在 guest OS 裡面做; 後兩步在 host OS 裡面做。
現在既然所有軟體全部都裝在同一部實體機上,
上述三步可以合併成一步: cordova run android
,
它會自動編譯、 安裝、 (在 android-x86 或實體手機/平板上) 執行。
今天在另一部電腦安裝 android sdk。下 cordova build 指令時出現這個錯誤:
回覆刪除[Error: Please install Android target: "android-22".
Hint: Open the SDK manager by running: /.../sdk/tools/android
You will require:
1. "SDK Platform" for android-22
2. "Android SDK Platform-tools (latest)
3. "Android SDK Build-tools" (latest)]
明明我在 config.xml 裡面把 android-minSdkVersion 跟 android-targetSdkVersion 都已經設定成 16, 而且 cordova platform add android 之後所產生的 platforms/platforms.json 內容正確 ( { "android": "4.1.1" } ) 還有 platforms/android/AndroidManifest.xml 的內容也正確 (
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" />) 但是不知為什麼 android sdk 就是堅持要叫我安裝 API 22。
好吧, 所以只好再叫出 SDK manager, 安裝 Android 5.1.1 (API 22) 底下的 SDK Platform, 然後編譯就成功了。