求教关于ant引用android第三方工程打包的问题

 我来答
约定20125
2016-04-29 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2922万
展开全部

 贴上build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="ProjectName" default="release" basedir=".">
<property file="config.properties"/>
    <property file="ProjectHome.properties"/>
    <!-- ANT环境变量 -->
    <property environment="env" />
    <!-- 生成R文件的相对目录 -->
    <property name="outdir-gen" value="${project.home}/gen" />
    <!-- 编译后的文件放置目录 -->
    <property name="outdir-bin" value="${project.home}/bin" />
    <!-- 输出目录 -->
<property name="outdir" value="${project.outdir}" />
    <!-- 清单文件 -->
    <property name="manifest-xml" value="${project.home}/AndroidManifest.xml" />
    <!-- 源文件目录 -->
    <property name="resource-dir" value="res" />
    <property name="asset-dir" value="assets" />
    <!-- 资源文件目录 -->
    <property name="drawable-dir" value="${resource-dir}/drawable" />
    <property name="drawable-hdpi-dir" value="${resource-dir}/drawable-hdpi"/>
    <property name="drawable-ldpi-dir" value="${resource-dir}/drawable-ldpi"/>
    <property name="drawable-mdpi-dir" value="${resource-dir}/drawable-mdpi"/>
    <property name="drawable-zh-rCN-dir" value="${resource-dir}/drawable-zh-rCN"/>
    <!-- java源文件目录 -->
    <property name="srcdir" value="src" />
    <property name="srcdir-ospath" value="${project.home}/${srcdir}" />
    <!-- 动态库so文件目录 -->
    <property name="library" value="${project.home}bs" />
    <!-- 第三方library -->
    <property name="library-dir" value="${library-dir}" />
    <property name="library-dir2" value="${library-dir2}" />
    <!-- 外部类库所在目录 -->
    <property name="external-lib" value="lib" />
    <property name="external-lib-ospath" value="${project.home}/${external-lib}" />
    <!-- 生成class目录 -->
    <property name="outdir-classes" value="${outdir-bin}/classes" />
    <property name="outdir-classes-ospath" value="${outdir-classes}" />
    <!-- classes.dex相关变量 -->
    <property name="dex-file" value="classes.dex" />
    <property name="dex-path" value="${outdir-bin}/${dex-file}" />
    <property name="dex-ospath" value="${dex-path}" />
    <!-- 经过aapt生成的资源包文件 -->
    <property name="resources-package" value="${outdir-bin}/resources.ap_" />
    <property name="resources-package-ospath" value="${resources-package}" />
    <!-- 未认证apk包 -->
    <property name="out-unsigned-package" value="${outdir-bin}/${appName}-unsigned.apk" />
    <property name="out-unsigned-package-ospath" value="${out-unsigned-package}" />
    <!-- 证书文件 -->
    <property name="keystore-file" value="${keystore}" />
    <!-- 已认证apk包 -->
    <property name="out-signed-package" value="${outdir-bin}/${appName}.apk" />
    <property name="out-signed-package-ospath" value="${out-signed-package}" />
    <!-- 已优化apk包 -->
    <property name="zipalign-signed-package" value="${outdir-bin}/${appName}${version}_release.apk" />
    <!-- 输出路径的apk包 -->
    <property name="outdir-package" value="${project.outdir}/${appName}.apk" />
    <!-- 初始化工作 -->
    <target name="init">
        <echo>Initializing all output directories...</echo>
        <delete dir="${outdir-bin}" />
        <delete dir="${outdir-gen}" />
        <mkdir dir="${outdir-gen}" />
        <mkdir dir="${outdir-bin}" />
        <mkdir dir="${outdir-classes}" />
    <!-- 把缺少的BuildConfig复制进去,暂时不知道如何生成 -->
        <copy file="ZI-master-BuildConfig.java" tofile="${outdir-gen}/com/yixia/zi/BuildConfig.java">
             <filterset>
                <filter token="CONFIG.FROM" value="${package.from}"/>
             </filterset>
        </copy>
        <copy file="VitamioBundle-BuildConfig.java" tofile="${outdir-gen}/com/yixiaitamiobrary/BuildConfig.java">
             <filterset>
                <filter token="CONFIG.FROM" value="${package.from}"/>
             </filterset>
        </copy>
    </target>
    <!-- 根据工程中的资源文件生成R.java文件 -->
    <target name="GenRJAVA" depends="init">
        <echo>Generating R.java / Manifest.java from the resources...</echo>
        <exec executable="${android-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="-S" />
            <arg value="${library-dir2}/res" /><!-- 注意点:同时需要调用Library的res-->
            <arg value="-I" /><!-- I指定android包的位置-->
            <arg value="${android-jar}" />
            <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错-->
        </exec>
        <!-- 根据库应用中的资源文件生成R.java文件 -->
        <exec executable="${android-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>
        <!-- 根据库应用中的资源文件生成R.java文件 -->
        <exec executable="${android-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-dir2}/AndroidManifest.xml" /><!-- 库应用的manifest-->
            <arg value="-S" />
            <arg value="${resource-dir}" />
            <arg value="-S" />
            <arg value="${library-dir2}/res" />
            <arg value="-I" />
            <arg value="${android-jar}" />
        </exec>
    </target>

微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式