Next revision | Previous revision |
android:ant-build-issues [2011/07/28 10:32] – created percy | android:ant-build-issues [2016/05/05 13:07] (current) – external edit 127.0.0.1 |
---|
| |
重新安装,运行正常。 | 重新安装,运行正常。 |
| |
| ====== 附build.xml ====== |
| |
| <file xml build_windows.xml> |
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <!-- WARNING: Eclipse auto-generated file. |
| Any modifications will be overwritten. |
| To include a user specific buildfile here, simply create one in the same |
| directory with the processing instruction <?eclipse.ant.import?> |
| as the first entry and export the buildfile again. --> |
| <project basedir="." default="debug" name="IShare"> |
| |
| |
| <!-- Manual: |
| this file(build.xml) can be used to either Windows or Linux, as you wish. |
| Generation: |
| the defualt target is "debug", so if you type the "ant" in commandline , it will result the same |
| as "ant debug", and the steps will be :clean -> dirs -> resource-src -> compile -> dex ->package-res-and-assets -> debug |
| for details, see the dependencies among the target! |
| |
| Now it's scripted in the linux template, actually ,it's mainly the same with the situation in windows, |
| the only defference is ,the "TOOLS_DX", "TOOLS_AAPT","TOOLS_APKBUILDER", |
| in Android android-sdk-linux, the corresponding tools are "dx" "aapt" "apkbuilder" |
| while in android-sdk-linux, the corresponding tools are "dx.bat" "aapt.exe" "apkbuilder.bat". |
| |
| if you wanna adapt the file to your java project ,the only thing you need to do is to change |
| the following 6 properties, |
| |
| <property name="Adbase" ........................./> the Android SDK path |
| <property name="Androidjar" ...................../> the path of android.jar |
| <property name="Javacpath" ...................../> the path of javac compiler |
| <property name="TOOLS_DX" ....................../> the path of dx tools |
| <property name="TOOLS_AAPT ....................../> the path of aapt tools |
| <property name="TOOLS_APKBUILDER ................./> the path of apkbuilder tools --> |
| |
| |
| <property name="Adbase" value="D:\android\sdk\android-sdk-all"/> |
| <property name="Androidjar" value="${Adbase}\platforms\android-8\android.jar" /> |
| <property name="Javacpath" value="C:\Program Files\Java\jdk1.6.0_20\bin\javac.exe" /> |
| <property name="TOOLS_DX" value="${Adbase}\platforms\android-8\tools\dx.bat"/> |
| <property name="TOOLS_AIDL" value="${Adbase}\platforms\android-8\tools\aidl.exe"/> |
| <property name="TOOLS_AAPT" value="${Adbase}\platforms\android-8\tools\aapt.exe"/> |
| <property name="TOOLS_APKBUILDER" value="${Adbase}\tools\apkbuilder.bat"/> |
| <property name="TOOLS_ZIPALIGN" value="${Adbase}\tools\zipalign.exe"/> |
| <property name="NDK" value="c:\mytools\ndk_bat.bat"/> |
| |
| |
| |
| <property name="external-libs" value="libs" /> |
| <condition property="external-libs-ospath" |
| value="${basedir}\${external-libs}" |
| else="${basedir}/${external-libs}" > |
| <os family="windows"/> |
| </condition> |
| |
| <path id="lib_classpath"> |
| <pathelement location="bin"/> |
| <pathelement location="${Androidjar}"/> |
| <!--pathelement location="${basedir}\jar\httpmime-4.1.1.jar"/> |
| <pathelement location="${basedir}\jar\signpost-commonshttp4-1.2.1.1.jar"/> |
| <pathelement location="${basedir}\jar\signpost-core-1.2.1.1.jar"/> |
| <pathelement location="${basedir}\jar\Analytics-Android-SDK-2.1.jar2"/--> |
| <fileset dir="${basedir}\jar"> |
| <include name="*.jar"/> |
| </fileset> |
| |
| </path> |
| |
| <target name="clean"> |
| <delete dir="bin"/> |
| </target> |
| |
| <target name="dirs"> |
| <echo>===By East===Creating output directories if needed...</echo> |
| <mkdir dir="bin" /> |
| <mkdir dir="bin/classes" /> |
| </target> |
| |
| <target name="ndk"> |
| <echo>===By East===ndk-build...</echo> |
| <exec executable="${NDK}" failonerror="true"> |
| </exec> |
| </target> |
| |
| <target name="aidl" > |
| <echo>===By East===Compiling the aidl to java classes</echo> |
| <echo> ${android-framework} </echo> |
| <apply executable="${TOOLS_AIDL}" failonerror="true"> |
| <arg value="-I${basedir}/src" /> |
| <fileset dir="src"> |
| <include name="**/*.aidl"/> |
| </fileset> |
| </apply> |
| </target> |
| |
| <target name="compile" depends="clean,dirs,resource-src,aidl"> |
| <echo>===By East===Compiling the java code via ${Javacpath}...</echo> |
| <echo> *********** ${srcdir} </echo> |
| <javac executable="${Javacpath}" fork="true" |
| debug="false" extdirs="" srcdir="${basedir}/src" destdir="${basedir}/bin/classes"> |
| <classpath refid="lib_classpath"/> |
| </javac> |
| </target> |
| |
| |
| |
| |
| <target name="dex" depends="compile"> |
| <echo>===By East===Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo> |
| <exec executable="${TOOLS_DX}" failonerror="true"> |
| <arg value="--dex" /> |
| <arg value="--output=${basedir}/bin/classes.dex" /> |
| <arg path="${basedir}/bin/classes" /> |
| <!--MUST ADD THIS,OTHERWISE IT WILL OCCUR class not found error, add by pjq --> |
| <arg path="${basedir}/jar/" /> |
| </exec> |
| </target> |
| |
| |
| <target name="resource-src" depends="dirs"> |
| <echo>===By East===Generating R.java / Manifest.java from the resources...</echo> |
| <exec executable="${TOOLS_AAPT}" failonerror="true"> |
| <arg value="package" /> |
| <arg value="-m" /> |
| <arg value="-J" /> |
| <arg value="src" /> |
| <arg value="-M" /> |
| <arg value="AndroidManifest.xml" /> |
| <arg value="-S" /> |
| <arg value="res" /> |
| <arg value="-I" /> |
| <arg value="${Androidjar}" /> |
| </exec> |
| </target> |
| |
| |
| <target name="package-res-and-assets"> |
| <echo>Packaging resources and assets...</echo> |
| <exec executable="${TOOLS_AAPT}" failonerror="true"> |
| <arg value="package" /> |
| <arg value="-f" /> |
| <arg value="-M" /> |
| <arg value="AndroidManifest.xml" /> |
| <arg value="-S" /> |
| <arg value="res" /> |
| |
| <arg value="-A" /> |
| <arg value="assets" /> |
| |
| <arg value="-I" /> |
| <arg value="${Androidjar}" /> |
| <arg value="-F" /> |
| <arg value="bin/${ant.project.name}.ap_" /> |
| </exec> |
| </target> |
| |
| |
| |
| |
| <target name="apk" depends="clean, dex,dirs,package-res-and-assets"> |
| <echo>===By East===Packaging ${out-debug-package}, and signing it with a debug key...</echo> |
| <echo>"${external-libs-ospath}"</echo> |
| <exec executable="${TOOLS_APKBUILDER}" failonerror="true"> |
| <arg value="${basedir}/bin/${ant.project.name}_temp.apk" /> |
| <arg value="-z" /> |
| <arg value="${basedir}/bin/${ant.project.name}.ap_" /> |
| <arg value="-f" /> |
| <arg value="${basedir}/bin/classes.dex" /> |
| <arg value="-rf" /> |
| <arg value="${basedir}/src" /> |
| <arg value="-nf" /> |
| <arg value="${external-libs-ospath}" /> |
| </exec> |
| </target> |
| |
| |
| <target name="debug" depends="apk" > |
| <echo>===By East===begin to Check the 4 byte problem...</echo> |
| <exec executable="${TOOLS_ZIPALIGN}" failonerror="true"> |
| <arg value="-v" /> |
| <arg value="4" /> |
| <arg value="bin/${ant.project.name}_temp.apk" /> |
| <arg value="bin/${ant.project.name}.apk" /> |
| </exec> |
| </target> |
| |
| |
| </project> |
| </file> |
| |
| |
| |