要建置本機版的 App Inventor, 需要以下幾個元件 (以下均以 Windows 平台為依據):
- Git 版本控制工具:你可在 Git 的 Windows 專頁下載 Windows 版本的安裝程式。記得要把 git.exe 所在的資料夾路徑加入 PATH 環境變數中。
- App Inventor 原始檔:可在 MIT App Inventor Public Open Source 網站下載, 下載回來解壓縮等候建置。不過建議用 git 工具 clone 回來, 因為下一步驟還需要補上所需的程式庫, 指令為:
git clone https://github.com/mit-cml/appinventor-sources.git。
- 補充下載所需的程式庫, 否則編譯會因為缺少必要的檔案而出錯 (可參考這一篇討論串):
git submodule update --init
- Apache Ant 建置工具:你可在 Apache Ant 的下載專頁下載 zip 格式的壓縮檔, 下載回來後只要解壓縮, 並且將其中的 bin 資料夾路徑加入 PATH 環境變數中。
- Python 程式開發環境:你可在 Python 的下載專頁下載 Python 2.7 版 安裝程式, 你也必須把 python 的路徑加入 PATH 環境變數中。
- JDK:你可在 Oracle JDK 專頁下載安裝程式, 並設定環境變數 JAVA_HOME 為安裝的資料夾路徑 (是 JDK 而不是上層的 JAVA 資料夾路徑喔), 再把 java.exe 所在資料夾的路徑加入 PATH 中。請特別注意, 官方文件是使用 JDK7, 如果使用太新版本的 JDK, 可能會在執行時發生問題, 目前我使用 JDK8U66 的版本是可以執行的, 可參考這一篇討論。
- Google App Engine Java SDK:可在 Google App Engine SDK 專頁下載壓縮檔, 下載後解開即可。
在 Windows 下, 為了讓建置過程順利, 你可能得建立 _JAVA_OPTIONS 環境變數:
set _JAVA_OPTIONS=-Xmx1024M
否則可能會遇到建置過程中, Java 回報在建立虛擬機器時無法配置足夠的記憶體。
完成上述的準備工作後, 就可以開始建置 App Inventor 了, 請進到解壓的原始檔中, appinventor 資料夾中, 執行以下指令:
ant clean
上述指令會清除之前建置的內容, 之後再執行
ant
即可開始一連串的建置動作, 建置時間有好幾分鐘, 你會看到一大堆的訊息, 成功時會看到以下訊息:
建置好後就可以開始執行, App Inventor網站其實有兩個伺服器, 一個是提供 App Inventor 開發環境的網站,一個是實際進行打包 APK服務的伺服器。首先執行開發網站, 以下是以 App Engine Java SDK 資料夾在 C:\appengine-java-sdk-1.9.17 為例, 下達指令:
D:\temp\mit-cml-appinventor-sources-5455be9\appinventor>c:\appengine-java-sdk-1.9.17\bin\dev_appserver.cmd --port=8888 --address=0.0.0.0 appengine\build\war
最後看到以下訊息, 就表示開發環境網站已經啟動:
你可以使用瀏覽器連上 http://localhost:8888/ 測試:
local 版的 App Inventor 一樣需要登入, 不過登入機制和雲端版本不同。如果沒有顯示上面登入頁面, 而是顯示錯誤訊息 "org.apache.jasper.JasperException: Unable to compile class for JSP:", 就表示使用的 JDK 版本太新, 可換成 JDK7 或是 JDK8U66 之前的版本試看看 (可參考這一篇討論)。這裡請點選 "Click Here to use your Google Account to login", 切換成只要填入 email 就可以登入的模式:
此種模式並不具有安全性, 任何人用同樣的 email 登入就可以存取同一使用者的專案。登入後同意授權條款之後就可以看到熟悉的 App Inventor 環境了:
你可以在網址列清楚的看到這是本機位址, 之後就可以如同操作雲端 App Inventor 服務一樣開發程式。不過在你按下打包 APK 功能之前,記得要先啟動後端打包 APK 的服務,這個服務稱為 buildsever, 啟動方法請先開啟新的命令提示字元, 切換到 App Inventor 下的 buildserver 資料夾, 再執行 ant RunLocalBuildServer 指令:
等看到以下訊息時, buildserver 服務就已經啟動了:
這樣你就可以在 App Inventor 中按功能表的『打包 APK』 建立可安裝的 APK 檔了。