2013.11.04(2)——— android ant打包 公共库项目问题
2013.11.04(2)———androidant打包公共库项目问题
参考:http://www.apkbus.com/android-138842-1-1.html
因为项目中用到了facebook第三方登录,而facebook的sdk是通过公共库也就是islibrary的方式引入的,而在ant进行打包的时候,会报错,打包不成功,查阅相关资料,解决此问题,大概需要改3个地方
1、加入库项目的源文件
<!-- 将工程中的java源文件编译成class文件 --> <target name="compile" depends="aidl"> <echo>Compiling java source code...</echo> <javac encoding="utf-8" target="1.6" destdir="${outdir-classes}" bootclasspath="${android-jar}" includeAntRuntime="false" > <src path="${library-dir}/src" /><!-- 库应用源码 --> <src path="${srcdir-ospath}" /><!-- 工程源码--> <src path="${outdir-gen}" /><!-- 生成的class文件全部保存到bin/classes目录下 --> <classpath> <fileset dir="${external-lib}" includes="*.jar"/> <!--第三方 <filelist> <file name="${android-maps-jar}"/> </filelist> --> <filelist> <file name="${android-annotations-jar}"/> </filelist> <filelist> <file name="${android-umeng-jar}"/> </filelist> <!-- <filelist> <file name="${android-facebook-jar}"/> </filelist> --> </classpath> </javac> </target>
2、加入库项目的资源文件
<!-- 根据工程中的资源文件生成R.java文件 --> <target name="gen-R" depends="init"> <echo>Generating R.java from the resources...</echo> <exec executable="${aapt}" failonerror="true"> <arg value="package" /><!-- package表示打包--> <arg value="-m" /><!--m,J,gen表示创建包名的目录和R.java到gen目录下 --> <arg value="-J" /> <arg value="${outdir-gen}" /> <arg value="-M" /><!-- M指定AndroidManifest.xml文件--> <arg value="${manifest-xml}" /> <arg value="-S" /><!-- S指定res目录,生成对应的ID,可多个--> <arg value="${resource-dir}" /> <arg value="-S" /> <arg value="${library-dir}/res" /><!-- 注意点:同时需要调用Library的res--> <arg value="-I" /><!-- I指定android包的位置--> <arg value="${android-jar}" /> <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错--> </exec> <!-- 根据库应用中的资源文件生成R.java文件 --> <exec executable="${aapt}" failonerror="true"> <arg value="package" /> <arg value="-m" /> <arg value="--auto-add-overlay" /> <arg value="-J" /> <arg value="${outdir-gen}" /> <arg value="-M" /> <arg value="${library-dir}/AndroidManifest.xml" /><!-- 库应用的manifest--> <arg value="-S" /> <arg value="${resource-dir}" /> <arg value="-S" /> <arg value="${library-dir}/res" /> <arg value="-I" /> <arg value="${android-jar}" /> </exec> </target>
3、加入库项目的buildConfig
在初始化的是时候复制库项目的BuildConfig
<!-- 把缺少的BuildConfig复制进去,暂时不知道如何生成 --> <copy file="${library-dir}/gen\com\facebook\android/BuildConfig.java" tofile="${outdir-gen}/com/facebook/android/BuildConfig.java"> <filterset> <filter token="CONFIG.FROM" value="${package.from}"/> </filterset> </copy>
相关推荐
BitsPlayer 2020-05-29
roygbip 2020-02-16
BitsPlayer 2020-02-13
lrcoop 2020-02-03
chichichi0 2020-01-06
BitsPlayer 2019-12-19
BitsPlayer 2019-12-14
xueliangEmail 2013-07-22
cailianren 2010-04-15
wugang0 2019-11-09
lustdevil 2011-08-28
evilvoid 2008-04-17
leonranri 2019-11-05
leeccr 2019-10-31
evilvoid 2010-02-02