ANT build.xml 编译出错Error running javac.exe compiler,详细情况如下:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ANT build.xml 编译出错Error running javac.exe compiler,详细情况如下:相关的知识,希望对你有一定的参考价值。
D:\zxing-1.62\core>ant
Buildfile: D:\zxing-1.62\core\build.xml
clean:
[delete] Deleting directory D:\zxing-1.62\core\build
build:
init:
compile:
[mkdir] Created dir: D:\zxing-1.62\core\build
[javac] D:\zxing-1.62\core\build.xml:36: warning: 'includeantruntime' was no
t set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 171 source files to D:\zxing-1.62\core\build
BUILD FAILED
D:\zxing-1.62\core\build.xml:53: The following error occurred while executing th
is line:
D:\zxing-1.62\core\build.xml:36: Error running javac.exe compiler
Total time: 0 seconds
建议运行 ant -f build.xml -v ,查看具体的错误,定位问题。 参考技术B 在javac里面加上includeantruntime="false"属性,意思好像是是不是要包含ant的lib。新版本ant里面新加的,老的没有 参考技术C ANT_HOME 等变量设置了吗。追问
ANT_HOME,PATH都配置好了,cmd 中ant回车出现Buildfile: build.xml does not exist!Build failed
就是编译时有问题了
android ant build.xml实例
使用的时候仅仅须要改动SKD路径javahome路径和project路径就能够了。
<?xml version="1.0" encoding="UTF-8"?> <project name="Scolview" default="zipalign" basedir="."> <property name="exe" value=".exe" /> <property name="bat" value=".bat" /> <!--用到的各个工具的本地路径,务必改动!--> <!--Android_Home 本机上androidsdk的安装文件夹--> <property name="android_home" value="F:/adt-bundle-windows-x86_64-20140624/sdk" /> <!--相应工程的根文件夹--> <property name="root" value="F:/andoridADT/workspace/Scolview" /> <!-- javahome 文件夹 --> <property name="javahome" value="C:/Program Files/Java/jdk1.6.0_45"></property> <!-- android sdk的版本。18表示Android 4.3--> <property name="android_api_level" value="18"/> <!-- android_sdk文件夹下的android.jar包的位置--> <property name="androidjar" value="${android_home}/platforms/android-${android_api_level}/android.jar" /> <!--本机上javac的文件夹--> <property name="javac" value="${javahome}/bin/javac.exe" /> <!--aapt用于生产R.java和打包resource资源--> <property name="aapt" value="${android_home}/build-tools/18.0.1/aapt${exe}" /> <!--dx用于将.class文件(加上第三方库和.class文件)打包成.dex文件--> <property name="dx" value="${android_home}/build-tools/18.1.1/dx.bat" /> <!--apkbuilder用于将.dex文件和打包过的资源文件(aapt打包后的)以及其它资源文件打包成apk文件--> <property name="apkbuilder" value="${android_home}/tools/apkbuilder${bat}" /> <!--zipalign用于对apk进行优化,非必须步骤--> <property name="zipalign" value="${android_home}/tools/zipalign${exe}" /> <!--打包过程中涉及到的各个文件夹--> <!--bin文件存放apk打包所需文件(.dex,resource.ap_,.class,AndroidManifest.xml等)和生成后的apk--> <property name="out" value="${root}/dest" /> <!--gen主要用于存放R.java,eclipse下为自己主动生成。ant下为aapt工具生成--> <property name="gen" value="gen" /> <!--存放javac生成的class文件的文件夹--> <property name="classes" value="${out}/classes" /> <!--存放.java源文件的文件夹--> <property name="src" value="src"/> <!--存放引用到的库文件夹--> <property name="lib" value="${out}/libs"/> <!--打包时候的编码格式--> <property name="encoding" value="UTF-8" /> <!--生成APK的名字--> <property name="file_name" value="scollview" /> <!-- 签名仓库。由keytool生成 --> <property name="keystore" value="${root}/edsheng.keystore" /> <!-- 须要设置签名名称--> <property name="key_name" value="edsheng" /> <!-- 须要设置--> <property name="key_pass" value="a199210311" /> <!-- 须要设置--> <property name="store_pass" value="a199210311" /> <!-- 签名所用jar包的位置--> <property name="jarsigner" value="${javahome}/bin/jarsigner.exe" /> <!-- 实际编译APK的步骤! 1.清除输出路径的文件(覆盖掉原来的打包结果) 2.创建须要输出的文件夹 3.调用aapt工具生成R.java文件 4.调用javac将java文件编译成java字节码(.class文件) 5.调用dx.bat将.class文件和其它调用到的第三方库文件编译成.dex文件 (.dex文件是能够在dalvik虚拟机上直接执行文件格式,能够理解为对java字节码做的针对嵌入式设备的优化) 6.调用apkbuilder工具将.dex文件和bin文件夹下的资源文件(aapt生成,如resource.ap_)打包成APK 7.调用jarsigner进行前面 8.调用zipalign进行性能提升--> <!--以下是实际的打包过程--> <!--1.清除输出路径的文件(覆盖掉原来的打包结果)--> <target name="mkdir"> <echo>生成输出文件夹。。。</echo> <mkdir dir="${out}"></mkdir> <echo>生成完毕</echo> </target> <target name="clean" depends="mkdir"> <echo>清理输出文件夹...</echo> <delete dir="${out}" /> <delete dir="${gen}" /> <echo>清理完毕</echo> </target> <target name="init" depends="clean"> <echo>创建输出文件夹...</echo> <mkdir dir="${out}" /> <mkdir dir="${gen}" /> <mkdir dir="${classes}" /> <mkdir dir="${lib}" /> <echo>创建文件夹完毕</echo> </target> <!--aapt详细參数含义见:http://blog.csdn.net/liuhe688/article/details/6679879--> <!-- 为该项目资源生成R.java文件 --> <target name="gen" depends="init"> <echo>从资源文件生成R.java ...</echo> <exec executable="${aapt}" failonerror="true"> <arg value="package" /> <arg value="-m" /> <arg value="-J" /> <arg value="${gen}" /> <arg value="-M" /> <arg value="AndroidManifest.xml" /> <arg value="-S" /> <arg value="res" /> <arg value="-I" /> <arg value="${androidjar}" /> </exec> <echo>R.java文件生成成功</echo> </target> <!--javac的详细參数含义见:http://cyf0110.iteye.com/blog/1508991--> <target name="compile" depends="gen"> <echo>開始编译.class文件...</echo> <javac fork="true" executable="${javac}" encoding="${encoding}" debug="true" extdirs="" source="1.5" target="1.5" destdir="${classes}" bootclasspath="${androidjar}"> <src path="${src}" /> <src path="${gen}" /> <classpath> <fileset dir="${root}/libs" includes="*.jar" /> </classpath> </javac> <echo>.class文件编译完毕</echo> </target> <!--执行android的自带工具dx.bat用于将.class文件和第三方库打包成dex文件--> <!--apply标签能够见:https://ant.apache.org/manual/Tasks/apply.html--> <target name="dex" depends="compile"> <echo>编译.dex文件...</echo> <apply executable="${dx}" failonerror="true" parallel="true"> <arg value="-JXms1024m" /> <arg value="-JXmx1536m" /> <arg value="-JXss1024k" /> <arg value="--dex" /> <arg value="--num-threads=4" /> <arg value="--output=${out}/classes.dex" /> <arg path="${classes}" /> <fileset dir="${root}/libs" > <include name="*.jar" /> </fileset> </apply> <echo>编译.dex文件完毕</echo> </target> <!-- 打包项目的资源文件 --> <target name="package_res_with_assets"> <echo>打包资源和资产文件...</echo> <exec executable="${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="${out}/${file_name}.ap_" /> </exec> <echo>打包资源和资产文件完毕</echo> </target> <target name="apk" depends="dex, package_res_with_assets"> <echo>開始打包apk...</echo> <exec executable="${apkbuilder}" failonerror="true"> <arg value="${out}/${file_name}_unsigned.apk" /> <arg value="-u" /> <arg value="-z" /> <arg value="${out}/${file_name}.ap_" /> <arg value="-f" /> <arg value="${out}/classes.dex" /> <arg value="-rf" /> <arg value="${root}/src" /> <arg value="-rj" /> <arg value="${root}/libs" /> <arg value="-nf" /> <arg value="${root}/libs" /> </exec> <echo>成功打包apk</echo> </target> <!--调用jarsigner进行签名--> <target name="sign" depends="apk"> <echo>開始签名...</echo> <exec executable="${jarsigner}" failonerror="true"> <arg value="-verbose" /> <arg value="-sigalg" /> <arg value="MD5withRSA" /> <arg value="-digestalg" /> <arg value="SHA1" /> <arg value="-keystore" /> <arg value="${keystore}" /> <arg value="-storepass" /> <arg value="${store_pass}" /> <arg value="-keypass" /> <arg value="${key_pass}" /> <arg value="-signedjar" /> <arg value="${out}/${file_name}_signed_unzipalign.apk" /> <arg value="${out}/${file_name}_unsigned.apk" /> <arg value="${key_name}" /> </exec> <echo>签名成功</echo> </target> <!-- 调用zipalign工具对签名后的包做优化 --> <!-- 主要是对资源做了字节对齐的优化,降低内存执行过程中的ram--> <!-- http://developer.android.com/tools/help/zipalign.html--> <target name="zipalign" depends="sign"> <echo>開始优化...</echo> <exec executable="${zipalign}" failonerror="true"> <arg value="-v" /> <arg value="4" /> <arg value="${out}/${file_name}_signed_unzipalign.apk" /> <arg value="${out}/${file_name}_signed_zipaligned.apk" /> </exec> <echo>结束优化</echo> <echo>清除编译过程中产生的数据。。。</echo> <delete dir="${out}/classes"> </delete> <echo>清除数据完毕。。
。
</echo> </target> </project>
以上是关于ANT build.xml 编译出错Error running javac.exe compiler,详细情况如下:的主要内容,如果未能解决你的问题,请参考以下文章