使用Ant批量打包Android專案
參考:http://blog.sina.com.cn/s/blog_74c22b21010173f8.html
補充遇到的問題:沒有先clean專案就去ant打包,在proguard.cfg或者proguard-project.txt檔案中引入了找不到的jar包導致can`t read *.jar無法打包
ant打包其實不難,看裡面的錯誤註釋,然後查詢就可以
1.配置JAVA的環境變數 (參考http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html), 很多Java程式設計師由於使用Eclipse不配置Java環境變數也能正常執行程式碼。但是如果想使用Ant命令批量打包本步驟必不可少。 2.Windows環境下:
6. 配置local.properties sdk.dir=D:\\androidDev\\android-sdk 改成你的SDK所在的目錄,注意轉義字元Mac環境下:
6. 配置local.properties sdk.dir=/opt/adt-bundle-mac/sdk 改成你的SDK所在的目錄7. 配置ant.properties # the config file for batch package. application.package=com.leyou.thumb (你的apk檔案的包名) ant.project.name=ThumbPlay (你的apk檔案的工程名) java.encoding=utf-8 out.absolute.dir=C:/compile gos.path=Z:/app-version/test (打好的渠道包要放到的目的位置) key.store=D:/androidApk/thumbplay/thumbplay.keystore (keystore檔案路徑) key.store.password=wushenshiji999 (keystore檔案路徑) key.alias=muzhigame (keystore檔案別名) key.alias.password=wushenshiji999 (keystore檔案別名密碼) app_version=1.0.4 (要打的渠道包的版本名稱) market_channels=guanwang,shuihu,wushen,shenhua,huawei (渠道名稱,要以逗號分隔,必須在一行內)
8. 最後一步,修改AndroidManifest.xml檔案:
以上這一行必須在同一行內,決不能換行,這是由於在build.xml做了如下限定 9.生成渠道包 a)進入工程根目錄,我的為:D:\apps\workspace\ThumbPlay 注意這裡必須要去工程根目錄,因為Ant命令執行需要找到工程根目錄下的build.xml b)cmd輸入命令:ant deploy 第一次執行或許需要的時間要長些,我的為大約2分50秒 若控制檯最後出現Build Success,說明打包成功 若控制檯最後出現Build Failed,檢視詳細資訊,找出錯誤所在,修改它,然後重新執行命令:ant deploy
可以直接使用Eclipse的ant打包專案
http://blog.csdn.net/gf771115/article/details/19478383
關於ant引用android第三方工程打包的問題
為了幫助網友解決“求教關於ant引用android第三方工”相關的問題,中國學網通過網際網路對“求教關於ant引用android第三方工”相關的解決方案進行了整理,使用者詳細問題包括:使用ant工具:A工程想呼叫B工程中src下的類來進行打包, 注:不是把B工程編譯成jar包,而是在A工程中的built.xml檔案中指定B工程中src的路勁來打包,那位有經驗的高手能給點指引嗎?或者demo 或者思路!!謝謝了!第一次做這個,頭有點大!!,具體解決方案如下:
解決方案1:
哥們,你的問題解決了沒啊? 我也遇到這個問題了
解決方案2:
把B專案設定為Lib:
project->properties->Android->Library->Is Library 這個勾選上。
在A專案中把B專案新增進去:
project->properties->Android->Library->Add..,,裡面把B專案選上。
這樣之後default.properties裡面就會有
android.library.reference.3=../XXXX.XXX.XXXX
的項。
這樣就可以編譯了,編譯的時候會把B專案的程式碼也一起編譯。
如果B專案不作為一個lib來處理,那也就沒辦法了。
解決方案3:
但是現在是想使用ant來打包,所以buid.xml應該怎麼寫
解決方案4:
你的方法我早用過 是可以的 但不是我們需要的 還是謝謝你!!我問題解決了!
解決方案5:
怎麼解決的?能否分享下?
解決方案6:
暈。。怎麼解決的都不分享下啊。。。
解決方案7:
不知道語言怎麼表達 有需要加我Q626473306溝通吧
解決方案8:
<!-- Compile this project's .java files into .class files. -->
<target name="compile" depends="dirs, resource-src, aidl">
<echo>libs_classpath..${basedir}/libs/</echo>
<javac encoding="UTF-8" target="1.6" extdirs="" srcdir="."
destdir="${outdir-classes}" bootclasspath="${android-jar}"
includeantruntime="on" source="1.6">
<compilerarg value="-Xlint" />
<!-- 第三方的工程 -->
<src path="${third_lib}/src" />
<src path="src" />
<src path="gen" />
<!-- 第三方工程裡的匯入包 -->
<!-- <classpath refid="libs_pro"/> -->
<classpath refid="libs_classpath"/>
<src path="${third_lib_2}/src" />
<src path="src" />
<src path="gen" />
<classpath refid="libs_pro_2"/>
</javac>
<echo>libs_classpath..${libs_classpath}</echo>
</target>
希望能幫助到你們,但我還是遇到個問題,這個方法可以載入第三方工程的src但無法載入第三方工程的res資源和自定義view的自定義屬性,如果有用到就會編譯不通過。苦惱呀...
解決方案9:
<!-- 第三方工程裡的匯入包 -->
<path id="libs_pro">
<fileset dir="${third_lib}/libs/">
<include name="*.jar"/>
</fileset>
</path>
解決方案10:
MD,老子最煩這種人,十萬火急的問,問題解決了,又不分享
解決方案11:
lz 求分享啊!
解決方案12:
我也是這問題 , 加入引用工程之後
-code-gen: [mergemanifest] Found Deleted Target File [mergemanifest] Merging AndroidManifest files into one. [mergemanifest] Manifest merger disabled. Using project manifest only. [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files... [echo] ---------- [echo] Handling Resources... [aapt] Generating resource IDs... [aapt] invalid resource directory name: F:\workspace\Zlib\bin\res/crunch BUILD FAILED D:\Android\sdk\tools\ant\build.xml:601: The following error occurred while executing this line: D:\Android\sdk\tools\ant\build.xml:653: The following error occurred while executing this line: D:\Android\sdk\tools\ant\build.xml:698: null returned: 1
這個路徑老不對,怎麼改啊
解決方案13:
601 653 698 同求
解決方案14:
現在也也遇到這個問題了,求解決方案
通過對資料庫的索引,我們還為您準備了:
問:我的android.jar包是自己寫的,用eclipse打包沒問題,然後我就用android...
答:你修改過以後,需要重新覆蓋你原來的build.xml,至少我們的android專案裡,每次修改後,都需要重新生成這個配置檔案。
===========================================問:我的android.jar包是自己寫的,用eclipse打包沒問題,然後我就用android...
答:android工程A關聯了另一工程B(可以在build path -->Link Source去關聯) 用ant的時候,方法與單獨build一個工程師沒多大的區別 先把B工程編譯打成jar包(可用Eclipse直接Export出jar包),然後放到A工程下的libs中去 再用ant去buildA工程即可~
===========================================問:我的android.jar包是自己寫的,用eclipse打包沒問題,然後我就用android...
答:ps :後期熟悉ant的話,可以使用純ant指令碼或者使用另一種更好的自動化打包工具(maven)關鍵程式碼如下:package com.cn.ant; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import...
===========================================問:現在我有一個java類,一個jar包放在一個資料夾裡,在資料夾外面是build.xm...
答:此檔案為myproperties.xml 在build.xml中加入:
===========================================問:現在我有一個java類,一個jar包放在一個資料夾裡,在資料夾外面是build.xm...
答:Android本身是支援ant打包專案的,並且SDK中自帶一個build.xml檔案。 通過該檔案,可以對檔案進行編譯、打包、安裝等。並且支援多種方式打包,如debug或者release。 一般的,可以按照如下方法進行操作: 首先建立一個Android工程。 工程建立好後...
===========================================問:現在我有一個java類,一個jar包放在一個資料夾裡,在資料夾外面是build.xm...
答:android的編譯打包工具
===========================================問:我自己建了一個java的jar檔案(只有一個類abc)非常簡單就3個函式(publi...
答:能new就說明jar包已經成功匯入,就應該能用,請確認你的類裡面的函式是public的。
===========================================問:我自己建了一個java的jar檔案(只有一個類abc)非常簡單就3個函式(publi...
答:android的編譯打包工具
===========================================問:我在第三方應用中用可以,在原始碼環境只可以呼叫jar的類方法,引用資源就...
答:1、把引用的jar包放到專案的libs資料夾 2、展開libs下jar包的的右鍵選單, build path -- add to build path 這樣,在生成專案的時候就會自動引用libs下的jar包
===========================================D:\\androidDev\\Android的SDK