當前位置:首頁 » 安卓系統 » antandroid打包

antandroid打包

發布時間: 2022-10-30 18:15:06

Ⅰ Ant打包功能求解!BUILD FAILED

你看看後面是不是有這樣的錯誤:
BUILD FAILED
D:\android\sdk\tools\ant\build.xml:649: The following error occurred while executing this line:
D:\android\sdk\tools\ant\build.xml:694: Execute failed: java.io.IOException: Cannot run program "D:\android\sdk\build-tools\23.0.0_rc2\bin\aapt.exe" (in directory "D:\Cocos\HelloCocos\proj.android"): CreateProcess error=2, 系統找不到指定的文件。
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
....

看提示:系統找不到指定的文件。是哪個文件呢?是這個:D:\android\sdk\build-tools\23.0.0_rc2\bin\aapt.exe,你去你的sdk目錄下看看是否有這個文件夾和文件bin\aapt.exe;沒有的話自己新建一個,然後將aapt.exe和zipalign.exe復制進去,這兩個文件在你D:\android\sdk\build-tools\23.0.0_rc2目錄下。然後在編譯。我的錯誤就是這樣解決的。不知道能否解決你的問題。個人經驗,僅供參考。

Ⅱ Android怎麼把一個現有工程打包成sdk

方法一
使用eclipse導出jar包:我們知道一個java項目是可以用eclipse導出jar包的,安卓工程也一樣,只要按普通的方法export就可以了。不過,export出來的包是沒有混淆過的,如果你要混淆,還需要單獨對你的jar包執行一次proguard程序,可參考proguard使用指南。
方法二
使用腳本打包:我個人比較喜歡該方法,因為android工程項目並不是只有JAVA代碼,有的資源也需要提供出來,而使腳本可以更加定製化一些。
android的SDK默認提供了一個ant打包的腳本,具體使用方法,可參考之前的BLOG,使用ant打包APK及依賴包最佳解決辦法
我們可以看出,打包,最終調用的其實是android sdk下的ant腳本,既然安卓已經幫我們寫好了ant腳本,我們就好好利用。
使用上面的BLOG中介紹的方法,先在工程目錄中生成你的build.xml,然後自己寫一個target

<target name="sdk"
depends="-set-release-mode, -release-obfuscation-check, -compile, -post-compile, -obfuscate">
</target>
這段target代碼,就是只執行到了混淆的腳本。然後我們在build.xml中選擇右鍵,run as, 第二個ant Build,然後選擇要執行的target為我們加上的sdk。
等執行完成後,就會在project/bin/proguard/obfuscated.jar找到你所要的jar包。

Ⅲ hbuilder怎麼打包成android

hbuilder打包過程比較復雜。

首先打開hbuilder新建一個移動APP選項,選擇一個空模板,然後選擇需要打包的文件,然後點擊「發行」-「打原生安裝包」,選擇Android,使用Google開發者證書進行打包。

其實如果是要將網頁打包成apk的話,有更加簡單的方法,只需要一個網址,一輛分鍾就可以封裝成一個安卓APP。

封裝不會改變你網頁里的內容,你的網頁是什麼樣的,封裝後就是什麼樣的。

手機搜索微導流,點擊「封裝打包」

封裝好的APP可以直接下載安裝包。

Ⅳ 如何將android原生應用改成ant方式編譯

android 程序打包成apk,如果在是命令行方式,一般都要經過如下步驟:
1.用aapt命令生成R.java文件
2.用aidl命令生成相應java文件
3.用javac命令編譯java源文件生成class文件
4.用dx.bat將class文件轉換成classes.dex文件
5.用aapt命令生成資源包文件resources.ap_
6.用apkbuilder.bat打包資源和classes.dex文件,生成unsigned.apk
7.用jarsinger命令對apk認證,生成signed.apk

eclipase手動打包生成apk方式,只不過是eclipase代替我們執行了以上命令而已。

eclipse用起來雖然方便,為什麼要使用Ant批量打包Android應用,對於我來說主要有以下兩方面考慮:
1、我們在發布App的時候,可能需要發送到十幾,甚至幾十個不同的分發渠道,比如360手機市場,網路,應用寶等等,我們可能需要對各個渠道的下載量,用戶存留和用戶使用情況等數據進行分析,比如使用網路移動統計,友盟統計等。為了實現統計功能,我們需要在配置文件中添加一個數據元,來標識我們的應用要發布到哪一個渠道上,因此,若使用傳統的方法,我們每發布一個渠道的版本,就需要修改清單文件中的數據元,然後再使用keystore進行簽名和打包。若只有一兩個分發渠道,工作量還是可以接受的,但是若我們的分發渠道打到幾十個的時候,我們如果再手動的進行修改然後簽名打包發布,那工作量就很可觀了。因此,為解決這種需求,我們採用Ant來實現對Android應用的自動打包。
2、我們做產品的時候,肯定需要經常打不同環境的包,比如開發環境,測試環境,生產環境,這個時候你怎麼辦,如果用傳統方法,你打開發環境包你要把你的服務端IP和圖片伺服器IP改成開發的,打包,然後打測試的包,你又要改成測試伺服器IP和圖片伺服器IP,這樣多麻煩,如果你把這服務端IP和圖片伺服器IP,配置到一個xml文件里,用ant打包方式實現自動替換,多方便。

Ⅳ 如何使用android自帶的ant

Ant是android的編譯打包工具,一個很好的跨平台構建工具,特別是對於Java項目,這里使用它對Android工程進行自動化構建可以得到非常大的便利。一般來說對Android工程進行構。

使用Ant搭建Android開發環境,建立android項目

配置Ant環境在windows上應該選擇zip壓縮包,將zip壓縮包解壓到一個目錄。

打開系統環境變數,在系統變數欄點擊新建,變數名輸入「ANT_HOME」,變數值為Ant的根目錄,如「D:\Android\apache-ant-1.9.0」,注意不要帶雙引號。

在系統變數中找到Path變數,點擊編輯,在變數值的最後添加「%ANT_HOME%\bin」,注意不要帶雙引號,並且要使用「;」和之前的變數值隔開。

打開一個cmd窗口,輸入「ant」,如果顯示一下信息,說明Ant的環境配置成功,如果顯示:'ant'
不是內部或外部命令,也不是可運行的程序或批處理文件。則要檢查一下路徑是否有問題。

在Eclipse中配置Ant

在eclipse中使用Ant之前,為了使Ant的build.xml文件能夠安裝制定的格式進行縮進和高亮顯示,並能夠進行代碼提示,首先要簡單的設置一下。

打開Windows - Preferences,依次展開General,Editors,選中File Associations,點擊Add...,在Add
File Type對話框中輸入build.xml,點擊Ok。

接下來在File type:欄選中build.xml,在Associated Editor:欄選中Ant
Editor,點擊Default,build.xml的圖標變成了一個小螞蟻,配置完畢。

使用Ant編譯Android的java代碼和native代碼

新建一個Android工程TestAnt,在工程的根目錄下新建一個build.xml文件

輸入以下內容:
<?xml version="1.0" encoding="UTF-8"?><project name="TestAnt" default="init"> <target name="init"> <fail message="Ant 1.7.0 or higher is required."> <condition> <not> <antversion property="ant.version" atleast="1.7.0" /> </not> </condition> </fail> </target> </project>

打開cmd,切換到工程根目錄,輸入ant init

編譯成功,來解析這個build.xml:
<project name="TestAnt" default="init">

project是Ant工程的根節點,name屬性是工程的名稱,default是默認執行的target,init為默認的target,當我們輸入Ant的時候和Ant
init是一樣的效果。
<target name="init"> <fail message="Ant 1.7.0 or higher is required."> <condition> <not> <antversion property="ant.version" atleast="1.7.0" /> </not> </condition> </fail> </target>

target指定了要執行的操作,init是我們為這個target所起的名字,也可以是build,clean等等。在這個target中,執行的是檢查Ant的版本,如個小於1.7.0的話會輸出報錯信息。

例如我們可以添加一個clean的target
<target name="clean"> <echo message="Deleting temporary files..." /> <delete dir="gen" /> <delete dir="bin" /> <delete dir="out" /> <delete dir="obj" /> <echo message="DONE (Deleting temporary files)" /> </target>

執行的操作是刪除所有臨時目錄,在cmd窗口中輸入Ant clean,這四個臨時目錄就會被刪除,和在eclipse中執行清理是一個效果。

使用Ant編譯Android工程

在SDK中,Google已經為我們寫好了一個build.xml文件,就是sdk根目錄\tools\ant\build.xml,所以我們只要把這個build.xml引入就可以編譯Android工程了。

在這之前首先要新建一個local.properties文件,引入sdk和ndk的路徑

輸入一下內容:

sdk.dir=D:\\Android\\android-sdk
ndk.dir=D:\\Android\\android-ndk

分別為sdk和ndk的路徑,要安裝自己的實際路徑進行配置。

在測試工程的build.xml中輸入一下代碼:
<?xml version="1.0" encoding="UTF-8"?><project name="TestAnt" default="release"> <loadproperties srcFile="local.properties" /> <loadproperties srcFile="project.properties" /> <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="sdk.dir" /> <fail message="ndk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="ndk.dir" /> <import file="${sdk.dir}/tools/ant/build.xml" /></project>

在命令行中執行ant release或ant debug,就會執行對應的編譯。

以上只是進行Java代碼的編譯,如何編譯native代碼呢,在NDK中Google可沒有提夠build.xml,這就需要我們自己實現。在新版NDK中,我們只要在命令行中切換到工程的根目錄,然後執行

「D:\Android\android-ndk\ndk-build.cmd」(紅色部分要替換成自己的路徑)

就可以,例如,在TestAnt工程中添加native代碼

執行ndk-build

所以我們只要在Ant中執行一個cmd命令就可以了,在build.xml中添加
<target name="native"> <echo message="Building native libraries..." /> <exec executable="${ndk.dir}/ndk-build.cmd" failonerror="true" /> <echo message="DONE (Building native libraries)" /> </target>

然後在命令行中執行ant native

執行了ndk-build。

以上介紹的都是使用Ant進行進步的Android編譯操作,在此基礎上可以實現更復雜的操作,比如批量替換資源文件,批量打包等等。

Ⅵ android 使用ant自動打包,某些Jar包包含assets目錄存放資源文件

<!-- 將資源文件放進輸出目錄 -->
<target name="package-res-and-assets">
<echo>Packaging resources and assets...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-M" />
<arg value="${manifest-xml}" />
<arg value="-S" />
<arg value="${resource-dir}" />
<arg value="-A" />
<arg value="${asset-dir}" />
<arg value="-I" />
<arg value="${android-jar}" />
<arg value="-F" />
<arg value="${resources-package}" />
</exec>
</target>

Ⅶ 求教關於ant引用android第三方工程打包的問題

貼上build.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<projectname="ProjectName"default="release"basedir=".">
<propertyfile="config.properties"/>
<propertyfile="ProjectHome.properties"/>
<!--ANT環境變數-->
<propertyenvironment="env"/>
<!--生成R文件的相對目錄-->
<propertyname="outdir-gen"value="${project.home}/gen"/>
<!--編譯後的文件放置目錄-->
<propertyname="outdir-bin"value="${project.home}/bin"/>
<!--輸出目錄-->
<propertyname="outdir"value="${project.outdir}"/>
<!--清單文件-->
<propertyname="manifest-xml"value="${project.home}/AndroidManifest.xml"/>
<!--源文件目錄-->
<propertyname="resource-dir"value="res"/>
<propertyname="asset-dir"value="assets"/>
<!--資源文件目錄-->
<propertyname="drawable-dir"value="${resource-dir}/drawable"/>
<propertyname="drawable-hdpi-dir"value="${resource-dir}/drawable-hdpi"/>
<propertyname="drawable-ldpi-dir"value="${resource-dir}/drawable-ldpi"/>
<propertyname="drawable-mdpi-dir"value="${resource-dir}/drawable-mdpi"/>
<propertyname="drawable-zh-rCN-dir"value="${resource-dir}/drawable-zh-rCN"/>
<!--java源文件目錄-->
<propertyname="srcdir"value="src"/>
<propertyname="srcdir-ospath"value="${project.home}/${srcdir}"/>
<!--動態庫so文件目錄-->
<propertyname="library"value="${project.home}bs"/>
<!--第三方library-->
<propertyname="library-dir"value="${library-dir}"/>
<propertyname="library-dir2"value="${library-dir2}"/>
<!--外部類庫所在目錄-->
<propertyname="external-lib"value="lib"/>
<propertyname="external-lib-ospath"value="${project.home}/${external-lib}"/>
<!--生成class目錄-->
<propertyname="outdir-classes"value="${outdir-bin}/classes"/>
<propertyname="outdir-classes-ospath"value="${outdir-classes}"/>
<!--classes.dex相關變數-->
<propertyname="dex-file"value="classes.dex"/>
<propertyname="dex-path"value="${outdir-bin}/${dex-file}"/>
<propertyname="dex-ospath"value="${dex-path}"/>
<!--經過aapt生成的資源包文件-->
<propertyname="resources-package"value="${outdir-bin}/resources.ap_"/>
<propertyname="resources-package-ospath"value="${resources-package}"/>
<!--未認證apk包-->
<propertyname="out-unsigned-package"value="${outdir-bin}/${appName}-unsigned.apk"/>
<propertyname="out-unsigned-package-ospath"value="${out-unsigned-package}"/>
<!--證書文件-->
<propertyname="keystore-file"value="${keystore}"/>
<!--已認證apk包-->
<propertyname="out-signed-package"value="${outdir-bin}/${appName}.apk"/>
<propertyname="out-signed-package-ospath"value="${out-signed-package}"/>
<!--已優化apk包-->
<propertyname="zipalign-signed-package"value="${outdir-bin}/${appName}${version}_release.apk"/>
<!--輸出路徑的apk包-->
<propertyname="outdir-package"value="${project.outdir}/${appName}.apk"/>
<!--初始化工作-->
<targetname="init">
<echo>...</echo>
<deletedir="${outdir-bin}"/>
<deletedir="${outdir-gen}"/>
<mkdirdir="${outdir-gen}"/>
<mkdirdir="${outdir-bin}"/>
<mkdirdir="${outdir-classes}"/>
<!--把缺少的BuildConfig復制進去,暫時不知道如何生成-->
<file="ZI-master-BuildConfig.java"tofile="${outdir-gen}/com/yixia/zi/BuildConfig.java">
<filterset>
<filtertoken="CONFIG.FROM"value="${package.from}"/>
</filterset>
</>
<file="VitamioBundle-BuildConfig.java"tofile="${outdir-gen}/com/yixiaitamiobrary/BuildConfig.java">
<filterset>
<filtertoken="CONFIG.FROM"value="${package.from}"/>
</filterset>
</>
</target>
<!--根據工程中的資源文件生成R.java文件-->
<targetname="GenRJAVA"depends="init">
<echo>GeneratingR.java/Manifest.javafromtheresources...</echo>
<execexecutable="${android-aapt}"failonerror="true">
<argvalue="package"/><!--package表示打包-->
<argvalue="-m"/><!--m,J,gen表示創建包名的目錄和R.java到gen目錄下-->
<argvalue="-J"/>
<argvalue="${outdir-gen}"/>
<argvalue="-M"/><!--M指定AndroidManifest.xml文件-->
<argvalue="${manifest-xml}"/>
<argvalue="-S"/><!--S指定res目錄,生成對應的ID,可多個-->
<argvalue="${resource-dir}"/>
<argvalue="-S"/>
<argvalue="${library-dir}/res"/><!--注意點:同時需要調用Library的res-->
<argvalue="-S"/>
<argvalue="${library-dir2}/res"/><!--注意點:同時需要調用Library的res-->
<argvalue="-I"/><!--I指定android包的位置-->
<argvalue="${android-jar}"/>
<argvalue="--auto-add-overlay"/><!--這個重要,覆蓋資源,不然報錯-->
</exec>
<!--根據庫應用中的資源文件生成R.java文件-->
<execexecutable="${android-aapt}"failonerror="true">
<argvalue="package"/>
<argvalue="-m"/>
<argvalue="--auto-add-overlay"/>
<argvalue="-J"/>
<argvalue="${outdir-gen}"/>
<argvalue="-M"/>
<argvalue="${library-dir}/AndroidManifest.xml"/><!--庫應用的manifest-->
<argvalue="-S"/>
<argvalue="${resource-dir}"/>
<argvalue="-S"/>
<argvalue="${library-dir}/res"/>
<argvalue="-I"/>
<argvalue="${android-jar}"/>
</exec>
<!--根據庫應用中的資源文件生成R.java文件-->
<execexecutable="${android-aapt}"failonerror="true">
<argvalue="package"/>
<argvalue="-m"/>
<argvalue="--auto-add-overlay"/>
<argvalue="-J"/>
<argvalue="${outdir-gen}"/>
<argvalue="-M"/>
<argvalue="${library-dir2}/AndroidManifest.xml"/><!--庫應用的manifest-->
<argvalue="-S"/>
<argvalue="${resource-dir}"/>
<argvalue="-S"/>
<argvalue="${library-dir2}/res"/>
<argvalue="-I"/>
<argvalue="${android-jar}"/>
</exec>
</target>

Ⅷ ant 打包Android項目 報custome_rules.xml錯誤 哪位大神知道解決方法

res文件夾裡面放的全部都是這個android應用中使用到的資源文件,也就是,圖片文件,聲音文件,文本文件,布局文件,動畫文件,等等等等!!XML,在android中除了xml的基本作用以外,主要是寫布局文件用的,你平時看到的那些android程序那些界面,都是用xml布局寫出來的,除此之外,還可以用xml定義一些動畫,以及一些常用的常量等

Ⅸ ant打包安卓apk怎麼實現.9圖識別,現在就是報錯,在不改圖的情況下可以完成識別不

跟.9沒關系吧,最好能把錯誤的log日誌列印出來

Ⅹ cocos2dx用ant打包出現if 語句與安卓SDK沖突的問題

你要是寫出NDK的版本,以及錯誤信息。
建議使用r9d版本,r10版本有問題。
這里給題主幾個小建議,方便發現問題的所在
1、在bat腳本中 set NDK_LOG=1,打開make的日誌輸出
2、在mk文件中通過$(info xxxxx) ,輸出你定義的信息,方便定位是哪兒了問題

熱點內容
linuxtomcat伺服器 發布:2025-03-06 12:09:49 瀏覽:202
華為的雲存儲是免費的嗎 發布:2025-03-06 11:58:50 瀏覽:408
c語言中關系運算符 發布:2025-03-06 11:58:01 瀏覽:265
lsw埠配置錯誤怎麼更改 發布:2025-03-06 11:57:16 瀏覽:284
建設銀行手機銀行密碼在哪裡修改 發布:2025-03-06 11:55:14 瀏覽:357
氣瓶如何存儲 發布:2025-03-06 11:51:28 瀏覽:554
愛奇藝會員怎麼改密碼 發布:2025-03-06 11:33:44 瀏覽:61
firefox不緩存 發布:2025-03-06 11:33:43 瀏覽:467
淘寶密碼如何破解 發布:2025-03-06 11:32:56 瀏覽:594
sqlservereclipse 發布:2025-03-06 11:25:29 瀏覽:706