当前位置: 代码迷 >> Android >> 2013.11.04(2)——— android ant打包 公共库项目有关问题
  详细解决方案

2013.11.04(2)——— android ant打包 公共库项目有关问题

热度:13   发布时间:2016-04-28 07:25:19.0
2013.11.04(2)——— android ant打包 公共库项目问题
2013.11.04(2)——— android ant打包 公共库项目问题
参考:http://www.apkbus.com/android-138842-1-1.html

因为项目中用到了facebook第三方登录,而facebook的sdk是通过公共库也就是is library的方式引入的,而在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>



  相关解决方案