ubuntu下ant 打包步骤

本文详细介绍如何在Android项目中使用ant进行构建,包括环境配置、编译设置、第三方库集成、JNI代码编译以及签名等步骤,并解决了特定环境下生成APK安装失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 切换到工程目录下;

2. 执行 android update project -p [project-dir] -t [target-id],执行完成后会在工程目录下生成 build.xml 和 local.properties 文件。

    1). 执行前请配置好环境变量

    2). project-dir 是要编译的工程的目录

    3). target-id 可以执行 android list targets 来查看,这是用于编译的版本

3. 执行 ant debug 或者 ant release 来打包。

4. 如果ant release打包过程中需要签名的话,在 local.properties 文件中添加

    key.store=<keystore>
    key.alias=<key>
    key.store.password=<keystore pwd>
    key.alias.password=<key pwd>

    其中:
    keystore为私钥库文件。
    key为签名需要使用的私钥。
    key.store.password为私钥库的密码。
    key.alias.password为私钥的密码。

    两个密码相关的属性也可以不添加,而只添加私钥库及私钥。 
    这样的话,执行时会依次弹出相应的输入框,提示用户输入相应的密码。

5. 如果项目引用了第三方库的话,只需要在项目根目录创建libs文件夹并将其放入即可。
    如果是jar库,直接放到libs目录下;如果是so库,需要放到libs的名为armeabi的子目录下。
    也可以通过设定相应的属性来指定第三方库的位置,其默认都是libs文件夹。
    jar.libs.dir为jar类型库所在的目录。
    native.libs.absolute.dir为so类型库所在的目录,即armeabi的父目录。

    如果项目包含了jni代码,希望在打包时自动重新编译so库,可以修改build.xml文件。
    修改方法为,在引用sdk的build.xml文件之前添加如下target:
    <target name="-pre-build" depends="-ndk-build">
    </target>
    <target name="-ndk-build">
        <exec executable="ndk-build" failonerror="true">
            <arg value="clean" />
        </exec>
        <exec executable="ndk-build" failonerror="true" />
    </target>

    ndk-build为ndk提供的命令,需要将ndk安装目录添加到环境变量中,添加方法同sdk/tools。
    生成的so默认会放到libs/armeabi目录下。

    使用默认的build.xml打包apk时,已经包含了混淆、签名、对齐优化等相关过程。
    如果是使用release的方式,最后生成的apk文件已经可以直接发布了。

6. 遗留问题:
    目前采用这种方法生成的APK,虽然已经被签名了,但是,安装时错误,提示未签名。
    查看APK包中的签名文件,不是默认的CERT.*,而是<key>.*。
    然后,即使将名称修改成CERT.*,程序仍然不能正常安装。
    如果导出debug版本,则不会有这个问题。
    用ADT插件导出签名APK,也不会有这个问题。

    解决方法:
    产生此问题的根本原因是JDK1.7造成的,只有运行Ant使用jre1.7的版本时,才会发生该问题。
    可以通过设置运行build.xml文件时使用的jre版本来解决,具体方法是:
    选中build.xml->右键->Run As->External Tools Configurations,
    在右侧区域选中JRE标签页,可以看到对jre设定有三个选项:
    Run in the same JRE as the workspace使用与workspace相同版本的jre。
    Execution environment根据相关环境选择一个jre版本。
    Separate JRE使用一个已经安装的jre的当前版本。
    一般项目的jre都会设定为1.7以下的版本,所以建议选择第一个,使其与项目设定保持一致即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值