Android 自動編譯、打包生成apk檔案 3 - 使用SDK Ant方式
之前第一篇和第二篇分別是都是完全自己手寫程式碼,自己測試並執行所有命令列命令,並且把所有命令都用翻譯成ant標籤,現在可以使用ant自動打包了。
但是還存在問題,首先前兩步驟沒有加混淆(proguard)支援,而且複用也要檢查下修改哪些內容,或者跨平臺需要修改.bat檔案引用等。
現在Android SDK中提供了包含之前寫過的操作的封裝,只需要使用一條命令android update project生成build.xml ,之後再修改配置檔案支援不同特性即可,完全不用寫ant程式碼,這些都由Android SDK自動生成。
一、生成SDK 命令生成build.xml檔案
1. 執行命令建立
- D:\ProjectDemo>android update project --name ProjectDemo --target 8 --path ./
- Updated project.properties
- Updated local.properties
- Added file D:\ProjectDemo\build.xml
- Updated file D:\ProjectDemo\proguard.cfg
2. 結果
執行此命令會生成4個檔案:
project.properties
local.properties
build.xml
proguard.cfg
3. 引數解釋
--name ProjectDemo 專案名稱
--target 8 指定專案Android版本
--path ./ 指定專案路徑
如果不知道target後面使用哪個版本,可以使用如下命令檢視本地支援Android版本號:
列出不同版本平臺的對應id編號
android list targets
4. 相關資料
如果想了解android update project命令更多使用介紹,可以檢視Android官方網站:
《Managing Projects from the Command Line》
http://developer.android.com/tools/projects/projects-cmdline.html
如果想了解andorid 命令參及含義,可以檢視:
http://developer.android.com/tools/help/android.html
二、手動配置一些屬性
1. 設定SDK路徑
修改local.properties檔案以下屬性值,指定到本地SDK目錄
sdk.dir=
例如:
sdk.dir=D:\\android-sdk-windows
2. 設定簽名屬性
把建立的密匙release.keystore放到當前目錄下,並在此目錄下建立ant.properties空檔案,填入以下內容
key.store=release.keystore
key.store.password=antPassword
key.alias.password=antPassword
key.alias=release
proguard.config=proguard.cfg
三、使用ant執行專案
- ant release
可選:
debug:帶除錯用簽名的構建
release:構建應用程式,生成的apk必須簽名才可以釋出
install:安裝除錯構建的包到執行著的模擬器或者裝置;
通常ant專案只需要執行ant命令即可,但是Android提供了擴充套件引數,更多引數可以檢視以下網址Ant Command Reference部分:
《Building and Running from the Command Line》
http://developer.android.com/tools/building/building-cmdline.html
四、異常記錄
異常一、
BUILD FAILED
D:\ProjectDemo\build.xml:83: Cannot find D:\ProjectDemo\android-sdk-windows\tools\ant\build.xml imported from D:\ProjectDemo\build.xml
修改local.projects,必須是雙斜槓
sdk.dir=D:\\android-sdk-windows
異常二:
[aapt] D:\ProjectDemo\res\layout\activity_main.xml:2: error: Error: String types not allowed (at 'layout_width' with value 'match_parent').
[aapt] D:\ProjectDemo\res\layout\activity_main.xml:2: error: Error: String types not allowed (at 'layout_height' with value 'match_parent').
BUILD FAILED
D:android-sdk-windows\tools\ant\build.xml:650: The following error occurred while executing this line:
D:android-sdk-windows\tools\ant\build.xml:691: null returned: 1
Total time: 1 second
當前Andorid版本不支援match_parent屬性值,match_parent是Android 8以後開始支援的屬性值,修改AndroidManifest中<uses-sdk android:minSdkVersion="8" />最少也要大於8。不過也可以把match_parent改為FILL_PARENT
轉載請註明出處:http://blog.csdn.net/androiddevelop/article/details/11553215
相關文章
- Android使用Ant自動編譯簽名打包詳解Android編譯
- 通過Ant將Android project編譯打包成APK檔案並安裝到手機AndroidProject編譯APK
- android 使用ANT批量打包apk步驟AndroidAPK
- Android Apk 檔案反編譯和重新打包的過程分析AndroidAPK編譯
- Android筆記之:App自動化之使用Ant編譯專案多渠道打包的使用詳解Android筆記APP編譯
- Android使用Ant進行apk多渠道打包AndroidAPK
- 使用ant編譯Java檔案(一)編譯Java
- 使用ant編譯Java檔案(二)編譯Java
- 利用ant編譯釋出打包jar檔案和打包api文件為rar檔案編譯JARAPI
- 在Windows下用ant編譯Android應用生成apk安裝包Windows編譯AndroidAPK
- Android Apk反編譯系列教程(二)APK重打包AndroidAPK編譯
- 分享一個自動編譯,打包,簽名 android apk 的小指令碼編譯AndroidAPK指令碼
- android使用ant編譯(rem)Android編譯REM
- 通過ant指令碼編譯打包android工程指令碼編譯Android
- ant指令碼實現的Android自動編譯指令碼Android編譯
- 安卓apk檔案反編譯安卓APK編譯
- flutter常見問題【3】:Flutter 使用Android studio 打包生成apkFlutterAndroidAPK
- iOS自動化編譯打包iOS編譯
- Flutter 38: 圖解 Android 打包 APK 檔案Flutter圖解AndroidAPK
- 在Eclipse 下整合ndk 自動編譯生成so檔案Eclipse編譯
- android自動化測試六之命令列編譯APKAndroid命令列編譯APK
- Unity 編譯 Android 的原理解析和 apk 打包分析Unity編譯AndroidAPK
- [android]android自動化測試六之命令列編譯APKAndroid命令列編譯APK
- win/mac下反編譯Android安裝包-APK檔案Mac編譯AndroidAPK
- Window下采用ant 指令碼構建Android自動化編譯指令碼Android編譯
- Android Apk反編譯系列教程(一)如何反編譯APKAndroidAPK編譯
- 使用ANT打包Android應用Android
- Android 生成簽名apk與多渠道打包AndroidAPK
- Ant 編譯、打包 build.xml 指令碼模板編譯UIXML指令碼
- .NET 中的動態編譯(生成exe檔案)編譯
- [轉]andriod的apk檔案相關的編譯反編譯工具APK編譯
- Android Studio打包專案:APKAndroidAPK
- Android Apk 打包AndroidAPK
- Android自動打包、簽名、優化、上傳ANT指令碼Android優化指令碼
- 【Android自動化打包】03. APK的數字簽名AndroidAPK
- Ant and Flex 用Ant編譯MXML檔案 - 螞蟻咬斷鬆緊帶(^_^)Flex編譯XML
- 關於Android APK反編譯AndroidAPK編譯
- Android ant自動打包指令碼:自動替換友盟渠道、版本號、包名Android指令碼