首页 > 移动平台 > 详细

〖Android〗ant build android project, setting android.jar precedence

时间:2014-04-11 22:57:02      阅读:599      评论:0      收藏:0      [点我收藏+]

最近公司的一个项目中,新增了classes.jar包,与android.jar有冲突,必须得在加载android.jar前行加载classes.jar;

在持续集成环境中须使用ant编译,classes.jar放在libs/目录中,被加载的优先级是最低的,导致一些方法Method不能调用,也使得工程编译不过通过;

所以现在是classes.jar放在与AndroidManifest.xml同级的目录中,现在写一个custom_rules.xml以最优先加载classes.jar再加载android.jar;

bubuko.com,布布扣
<?xml version="1.0" encoding="UTF-8"?>
<!--
    scue:
      classes.jar 与 android.jar 有冲突,应先加载 classes.jar
      分析${sdk.dir}/tools/ant/build.xml得,应修改project.target.class.path
-->
<project name="custom_rules">
    <!--
    scue:
      -pre-build,编译前执行删除libs/classes.jar文件
    -->
    <target name=‘-pre-build‘>
        <echo message="DELETE: libs/classes.jar"></echo>
        <delete>
            <fileset dir="libs" includes="**/classes.jar"/>
        </delete>
    </target>
    <target name="-pre-compile">
        <echo message="CLASSPATH.OLD=${toString:project.target.class.path}"></echo>
        <path id="project.target.class.path">
        <pathelement location="classes.jar"></pathelement>
        <pathelement location="${sdk.dir}/platforms/android-15/android.jar"></pathelement>
        </path>
        <echo message="CLASSPATH.NEW=${toString:project.target.class.path}"></echo>
    </target>
    <!--
    scue:
      -post-build,编译后执行拷贝classes.jar > libs/classes.jar文件
    -->
    <target name=‘-post-build‘>
        <echo message="COPY: classes.jar --> libs/classes.jar"></echo>
        <copyfile src="classes.jar" dest="libs/classes.jar"/>
    </target>
</project>
bubuko.com,布布扣

把custom_rules.xml放在与AndroidManifest.xml同级目录即可,然后 ant debug,Enjoy!

〖Android〗ant build android project, setting android.jar precedence,布布扣,bubuko.com

〖Android〗ant build android project, setting android.jar precedence

原文:http://www.cnblogs.com/scue/p/3658824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!