解决方案 »

  1.   

    如果你只是打少量的渠道包,把渠道号写在配置文件里面 如在build.properties;#打包渠道号范围,必须用","分隔
    channels=1,2,3,4然后你在build.xml里面使用for循环进行读取;在工程中,你可以把渠道号放在assest目录面;也可以写在类里面,在build.xml里面对渠道号进行修改;
    在build.xml中修改变量的方法;
    <!--  用于修改文件里的String类型变量  -->
    <macrodef name="replaceStringVar">
    <attribute name="varName"/>
    <attribute name="varValue"/>
    <attribute name="filePath" default="${project.xxx}/src/xxx/xxx/Config.java"/>
    <sequential>
    <replaceregexp encoding="utf-8" file="@{filePath}">
    <regexp pattern="public([\s\r\n]*?)static([\s\r\n]*?)final([\s\r\n]*?)String([\s\r\n]*?)@{varName}([\s\r\n]*?)=([\s\r\n]*?)"(.*?)"(\s*)\;"/>
    <substitution expression="public static final String @{varName} = "@{varValue}"\;"/>
    </replaceregexp>
    </sequential>
    </macrodef>然后可以打多渠道包了;还有一种方案,你可以把打好的一个渠道包,进行反编译,然后替换渠道的文件,然后再把文件再编译成apk;不过这种方案我没有做过,你可以研究一下