Android使用Ant打包所遇到问题的解决方法
2015-09-21 18:34
711 查看
按照Ant自动编译打包android项目的教程来进行打包(输入ant debug后)出现了一些问题:
${aapt}”: CreateProcess error=2,
百度了一下,发现是sdk.dir\tools\ant\build.xml有问题,有部分引用没有指定值,如aapt所以在{sdk.dir}(SDK目录)\tools\ant\build.xml里面添加一下几行代码就解决了这个问题:
然后再次运行ant debug,就出现了这个问题:\22.0.1\dx”: CreateProcess error=2,
进去${sdk.dir}\build-tools\22.0.1目录查看后发现,aapt,aidl,zipalign都是以.exe结尾,而唯有dx是以.bat,所以我想可能是因为上面的第三个路径还不完整,所以就出现了这个问题,所以正确的路径应该是这样的:最终ant debug 成功。
+ 按照Ant自动编译打包android项目(二)—-签名与渠道包的教程的时候,
1. 也出现了一些小问题:
由于我的第二个密码多了几个空格,从而导致build失败,等于号后面都最好不要增加不必要的空格。(window->preferences->General->Editors->Text Editors->Show whitespace characters勾上就可以显示空格和回车符)
2. 打到最后,发现渠道报名没错了,但是清单文件里面的渠道名称却没有更换,原来是下面的两行配置出问题了:
因为一般自己的工程的清单文件的都是name在value前面,并且是分行排列的,所以上面的pattern就匹配不上,从而导致虽然能够打出了不同的包名,但是内部的渠道名去没有改变,要想正确修改渠道名,需要使用下面的配置:
Ant自动编译打包android项目(二)—-签名与渠道包
${aapt}”: CreateProcess error=2,
百度了一下,发现是sdk.dir\tools\ant\build.xml有问题,有部分引用没有指定值,如aapt所以在{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" />
然后再次运行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项目(二)—-签名与渠道包
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories