AI開發實戰1-App Inventor的編譯
1 App Inventor的編譯
編譯AppInventor需要使用ant,在專案的GitHub上https://github.com/mit-cml/appinventor-sources有如下說明:
Youwill need a full Java JDK (6 or 7, preferably from Oracle; JRE is not enough)and Python to compile and run the servers.
需要在電腦上安裝JDK6或7,才能正常編譯。
但ant的不同版本需要的JDK不同,像1.10.1版本就需要JDK8,否則編譯的時候,會報如下錯誤:
Exception in thread "main"java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher :Unsupported major.minor version 52.0
編譯的時候,直接輸入ant命令,會編譯所有原始碼,花費時間較長,在本人電腦上是6分鐘多。實際往往不需要編譯全部程式碼,只編譯改動的模組就可以了。
在原始碼的appinventor資料夾下有個build.xml檔案,在其中有許多target標籤:
<target name="all">
<ant inheritAll="false" useNativeBasedir="true"dir="appengine"/>
<ant inheritAll="false" useNativeBasedir="true"dir="blocklyeditor"/>
<ant inheritAll="false" useNativeBasedir="true"dir="common"/>
<ant inheritAll="false" useNativeBasedir="true"dir="buildserver"/>
<ant inheritAll="false" useNativeBasedir="true"dir="components"/>
<ant inheritAll="false" useNativeBasedir="true"dir="buildserver" target="PlayApp"/>
</target>
…
<target name="MakeAuthKey">
…
<target name="comps">
…
<target name="extensions">
…
<target name="clean">
<ant inheritAll="false" useNativeBasedir="true"dir="appengine" target="clean"/>
<ant inheritAll="false"useNativeBasedir="true" dir="blocklyeditor"target="clean"/>
<ant inheritAll="false" useNativeBasedir="true"dir="aimerger" target="clean"/>
<ant inheritAll="false" useNativeBasedir="true"dir="buildserver" target="clean"/>
<ant inheritAll="false" useNativeBasedir="true"dir="common" target="clean"/>
<ant inheritAll="false" useNativeBasedir="true"dir="components" target="clean"/>
<delete dir="build"/>
<delete dir="reports"/>
</target>
每個target標籤中間說明了使用ant + target name時,編譯的模組,如輸入如下命令:
ant all——編譯所有模組,等同於只輸入ant
antextensions——編譯外掛
antMakeAuthKey——編譯AuthKey
還有個特殊的編譯命令:
antclean——刪除之前編譯生成的build和reports資料夾。
相關文章
- 【轉載】App Inventor 開發BLE應用APP
- ZOMI的AI編譯原理2AI編譯原理
- ZOMI的AI編譯原理1AI編譯原理
- [譯] 前端開發框架的實戰對比(2018 年更新)前端框架
- 《Node.js 開發實戰》翻譯歷程Node.js
- MIT App Inventor安卓圖形化開發入門MITAPP安卓
- hybrid混合編譯開發 更新編譯
- CentOS 8上安裝GCC實現開發編譯功能CentOSGC編譯
- AI 輔助前端開發實戰:讓 AI 成為你的程式設計助手AI前端程式設計
- AI 聊天應用開發實戰:從構思到上線的全棧開發指南AI全棧
- 微信小程式“反編譯”實戰(一):解包微信小程式編譯
- Flutter 混合開發實戰問題記錄(四)編譯執行時問題的一些總結Flutter編譯
- AI 大模型應用開發實戰(04)-AI生態產業拆解AI大模型產業
- 回到最初:開發不需要“編譯” 的 WebApp編譯WebAPP
- kubernetes下jenkins實戰maven專案編譯構建JenkinsMaven編譯
- 優化使用kotlin開發Android app的編譯速度優化KotlinAndroidAPP編譯
- 開源編譯工具和編譯軟體編譯
- postcss開發實戰CSS
- iPhone開發實戰iPhone
- ChatGPT開發實戰ChatGPT
- Python開發實戰Python
- GDB 除錯 Mysql 實戰(一)原始碼編譯安裝除錯MySql原始碼編譯
- 編譯原理實戰入門:用 JavaScript 寫一個簡單的四則運算編譯器(修訂版)編譯原理JavaScript
- Flutter完整開發實戰詳解(二、快速開發實戰篇)Flutter
- 張高興的 Raspberry Pi AI 開發指南:(三)將自定義模型編譯為 Hailo NPU 的 .hef 模型AI模型編譯
- Andorid Studio NDK 開發 – 編譯 OpenSSL 類庫編譯
- qgroundcontrol開發環境搭建原始碼編譯開發環境原始碼編譯
- Android開發編譯curl庫給Android使用Android編譯
- RK3568開發板原始碼編譯原始碼編譯
- iOS開發你不知道的事-編譯&連結iOS編譯
- Java中的編譯器外掛開發與應用Java編譯
- AI+翻譯 AI智慧體平臺釦子coze開發搭建AI智慧體
- 微信小程式“反編譯”實戰(二):原始碼還原微信小程式編譯原始碼
- 全圖化引擎(AI·OS)中的編譯技術AI編譯
- Chrome 擴充套件的開發實戰Chrome套件
- FFmpeg開發筆記(十六)Linux交叉編譯Android的OpenSSL庫筆記Linux編譯Android
- FFmpeg開發筆記(八)Linux交叉編譯Android的FFmpeg庫筆記Linux編譯Android
- 全志A40i開發板編譯環境的搭建編譯
- Linux 開發環境 -- C/C++開發環境編譯安裝Linux開發環境C++編譯