設置Cordova Android編譯環境

本文旨在更新《超圖解物聯網IoT實作入門》10-3頁,「設置Cordova的Android開發環境」單元,主因是Google不再單獨提供圖形操作介面版的“SDK Tools Only(僅SDK工具)”,如果需要圖形操作介面,必須下載完整的Android Studio開發工具。

由於筆者現役的筆電是用了三年多的Surface Pro(第一代),SSD硬碟容量僅有128GB,所以我從未在這台筆電安裝Android Studio(參閱下一篇文章介紹)。

設置Cordova的Android開發環境所需軟體

底下是本篇文章所使用的軟體和版本:

其中的Ant, JDK和Cordova的安裝過程和書本裡的描述一樣,如果你之前已經安裝過Ant和JDK,就不必重新安裝。Android SDK 25.2.3可從TechSpot網站下載(因為Google已經不提供了),筆者也將Windows, Mac和Linux版上傳到Google Drive雲端硬碟的這個位址備用。

安裝Android SDK 25.2.3

Android SDK 25.2.3是個ZIP壓縮檔,以Windows版為例,檔名為tools_r25.2.3-windows.zip,它沒有安裝程式,請將裡面的tools資料夾解壓縮到你的用戶名稱底下的Android資料夾

Android資料夾

設定系統環境變數

請將ANDROID_HOME的環境變數值,原本是:

C:\Users\用戶名\Android\android_sdk

改成;

“C:\Users\用戶名\Android”:

如下圖所示:

Windows環境變數

tools和platform_tools路徑不變,底下是筆者電腦裡的Path環境變數的部份內容:

環境變數

其中的%appdata%\npm是Node.js的npm所在路徑,如果你在命令提示字元執行npm指令時,系統回報找不到命令之類的錯誤,請將此路徑加入Path變數。%appdata%是Windows的系統變數,等同這個路徑:“C:\Users\用戶名\AppData\Roaming”

啟動SDK Manager(SDK管理員)

Android SDK管理員改成在命令提示字串視窗中,透過android sdk命令啟動:

開啟Android SDK管理員

SDK管理員的操作方式和書本10-9頁的說明一樣。

SDK管理員

新增Cordova Android平台與編譯Android App

請先依照10-14頁的說明,建立一個Hello專案,接著替此專案新增Android平台,如10-16頁所示:

新增Android平台

在筆者撰寫本文時,上述命令安裝的是Cordova Android 6.2.3平台,這個版本可搭配Google最新的Android SDK工具來編譯App,但是,它並不支援舊版的SDK工具。如果執行build參數編譯Anroid App,將出現底下「找不到建立Android所需的Gradle程式(Could not find an installed version of Gradle)」錯誤訊息:

找不到建立Android所需的Gradle程式

解決方法是安裝Android 6.1.x平台版本。請先移除既有的Android平台,然後再新增Android 6.1.x平台:

移除Android

或者用update(升級)參數,把既有的平台改成6.1.x版:

update android

上述兩段命令,都將新增Android 6.1.2版。不同Android平台版本的主要差異在於支援的Android API不同,例如,Cordova Android 6.0.0完整支援API 24,而6.1.0開始支援API 25,這兩個API分別對應代號Nougat(牛軋糖)的Android 7.0和7.1系統。

有關Apache Cordova工具以及平台版本的發布訊息,可參閱Cordova官方部落格

改用6.1.x版之後,就能成功編譯Android App了。倘若編譯階段出現底下的「你尚未接受SDK授權條款(You have not accepted the license agreements of the following SDK components)」的錯誤訊息:

SDK授權條款錯誤

代表你的SDK工具尚未安裝對應的API版本(此例為API 25),請參閱10-18頁說明,在SDK管理員中安裝:

SDK平台

再次編譯Android就能成功了。

2 thoughts on “設置Cordova Android編譯環境

  1. 感謝老師的教學
    之後我重新開始,他好像自動下載了什麼就可以用run了 = =
    另外想請教老師開發cordova是怎麼在手機上debug的
    因為沒有像是chrome開發者工具可以用console

    如果老師工作繁忙可丟些關鍵字給我小弟自己去爬文感謝> <

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *