Android ant 编译 apk文件名含版本号

项目中总会遇到使用ant编译的情况,eclipse的项目,使用jenkins 做CI的时候就要使用,编译完成后的包名一般是下面这样的格式
项目名-[是否签名]-[是否压缩]-编译模式.apk
然后编译出来的apk包文件名缺少版本,不方便识别。
用下面的build.xml即可解决这个没有版本号的问题


<project xmlns:sonar="antlib:org.sonar.ant"
    name="HospitalAndroid"
    default="help" >
    <property file="local.properties" />

    

    <property file="ant.properties" />

    <xmlproperty
        collapseAttributes="true"
        file="AndroidManifest.xml"
        prefix="themanifest" />

    <property
        name="out.final.file"
        location="${ant.project.name}-${themanifest.manifest.android:versionName}-release.apk" />
    

    <property environment="env" />

    <condition
        property="sdk.dir"
        value="${env.ANDROID_HOME}" >

        <isset property="env.ANDROID_HOME" />
    condition>

    

    <loadproperties srcFile="project.properties" />

    

    <fail
        message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
        unless="sdk.dir" />

    

    <import
        file="custom_rules.xml"
        optional="true" />

    
    

    <import file="${sdk.dir}/tools/ant/build.xml" />
project>

关键代码就是下面这段

<xmlproperty
    collapseAttributes="true"
    file="AndroidManifest.xml"
    prefix="themanifest" />

<property
    name="out.final.file"
    location="${ant.project.name}-${themanifest.manifest.android:versionName}-release.apk" />

其实很简单,就是在打包之前,AndroidManifest中的versionName读取出来,加在out.final.file属性里

你可能感兴趣的:(Android)