Android使用Ant打包所遇到问题的解决方法

  • 按照Ant自动编译打包android项目的教程来进行打包(输入ant debug后)出现了一些问题:
    1. ${aapt}”: CreateProcess error=2,
      百度了一下,发现是 sdk.dir\tools\ant\build.xmlaapt {sdk.dir}(SDK目录)\tools\ant\build.xml里面添加一下几行代码就解决了这个问题:
    <property name="aapt" location="${sdk.dir}/build-tools/22.0.1/aapt" />
    <property name="aidl" location="${sdk.dir}/build-tools/22.0.1/aidl" />
    <property name="dx" location="${sdk.dir}/build-tools/22.0.1/dx" />
    <property name="zipalign" location="${sdk.dir}/build-tools/22.0.1/zipalign" />
  1. 然后再次运行ant debug,就出现了这个问题:\22.0.1\dx”: CreateProcess error=2,
    进去${sdk.dir}\build-tools\22.0.1目录查看后发现,aapt,aidl,zipalign都是以.exe结尾,而唯有dx是以.bat,所以我想可能是因为上面的第三个路径还不完整,所以就出现了这个问题,所以正确的路径应该是这样的:最终ant debug 成功。
    <property name="aapt" location="${sdk.dir}/build-tools/22.0.1/aapt" />
    <property name="aidl" location="${sdk.dir}/build-tools/22.0.1/aidl" />
    <property name="dx" location="${sdk.dir}/build-tools/22.0.1/dx.bat" />
    <property name="zipalign" location="${sdk.dir}/build-tools/22.0.1/zipalign" />

技巧:可以使用ant clean 清掉bin目录
+ 按照Ant自动编译打包android项目(二)—-签名与渠道包的教程的时候,
1. 也出现了一些小问题:

#keystore的路径,必须使用正斜杠
key.store=E:/wp_android_sample/me.key
#keystore的密码
#key.store.password=*****
#alias名
key.alias=me
#alias密码
#key.alias.password=******     

由于我的第二个密码多了几个空格,从而导致build失败,等于号后面都最好不要增加不必要的空格。(window->preferences->General->Editors->Text Editors->Show whitespace characters勾上就可以显示空格和回车符)
2. 打到最后,发现渠道报名没错了,但是清单文件里面的渠道名称却没有更换,原来是下面的两行配置出问题了:

<!-- 匹配的内容是 android:value="*****" android:name="UMENG_CHANNEL" -->  
<regexp pattern='android:value="(.*)" android:name="UMENG_CHANNEL"' />  
<!-- 匹配之后将其替换为 android:value="渠道名" android:name="UMENG_CHANNEL" -->  
<substitution expression='android:value="${channel}" android:name="UMENG_CHANNEL"' />    

因为一般自己的工程的清单文件的都是name在value前面,并且是分行排列的,所以上面的pattern就匹配不上,从而导致虽然能够打出了不同的包名,但是内部的渠道名去没有改变,要想正确修改渠道名,需要使用下面的配置:

<!-- 匹配的内容是 android:value="*****" android:name="UMENG_CHANNEL" -->
<regexp pattern='android:name="UMENG_CHANNEL"\s*android:value="(.*)"' />
<!-- 匹配之后将其替换为 android:value="渠道名" android:name="UMENG_CHANNEL" -->
<substitution expression='android:name="UMENG_CHANNEL" android:value="${channel}"' /> 

Refer to

Ant自动编译打包android项目
Ant自动编译打包android项目(二)—-签名与渠道包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值