位置: 编程技术 - 正文
推荐整理分享使用ant编译之签名问题(ant编译工具),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:ant编译打包,ant编译工具,ant编译找不到符号,ant编译工具,ant编译工具,ant编译jar包,ant编译jar包,ant编译工具,内容如对您有帮助,希望把文章链接给更多的朋友!
使用ant编译之签名问题
DionysosLai(@qq.com) /1/5
使用ant编译,可以很大提高项目开发效率。目前,coco2dx官方所提倡的提高几十倍的编译速度,其实就是使用了ant技术。原理提前将引擎库编译成一个so文件,游戏编译时,只需要编译自己的代码即可,而不需要同时编译引擎代码。相比自己的代码与引擎代码量,二者相差了几十倍,因此速度会提高很多。同时另一方面,很多问题,在Eclipse上只会报错,而不能指出具体位置(相信,大家在写mk文件时,就遇到这个问题)。然而,使用了ant编译,问题具体位置将完完全全的显示出来。
当然使用ant编译也有不好的地方,就是每次都会重新编译代码,而不是改动过的代码,这样导致每次生成apk文件都需要1到2分钟,这取决于游戏代码量。
在cocos2dx引擎中,使用ant编译工程,是一项比较复杂的操作,因此打算分成几个部分,详细的将问题阐述清楚。作为第一篇关于ant编译问题,先阐述一个比较简单的话题:签名。这个话题的延伸,就是自动生成apk,自动给apk打签名了。
给apk签名,有两种,一种是手动签名,另一种是自动签名。
手动签名:
1. 生成apk
使用ant编译之签名问题使用ant编译,可以参考这篇pdf文件( 这是,我写的一个自动编译脚本,双击运行即可,这样会自动生成一个debug版的apk(注意,debgu版apk,系统会自动给apk打上bebug签名,只能将
”call ant debug”改成”call ant release”才能生成一个未签名过的release版apk)。
2. Apk签名
如何Apk签名,可以再网上找到相关资料,这里可以参考我自己写的一个脚本命令行:
创建一个.bat文件,将文件放在待签名apk同一级目录下即可,双击运行,之后输入签名key文件的密码,就会在ok文件夹生成签好名的apk了。
这里签名会有一个问题出现:"java.util.zip.ZipException:invalid entry compressed size (expected but got bytes)"。这个问题很多人在网上遇到过,在ant编译时,我也曾遇到过,网上的说法有很多,解决也一样。后来,分析问题,其实很简单,就是说apk大小出错,本来应该是字节,现在确实字节了,然后就报压缩出错问题。其实,之所以出现这个问题,是因为我们尝试使用debug版apk签名了,而debug版apk已经签过名了(这也是apk大小增大的原因)。因此我们只能输出release版apk,再次签名。
直接将”call ant debug”改成”call ant release”,双击运行脚本文件,会报这个如下错误;
(ps,这就是使用ant编译好处,问题出现位置很清楚),这是由于文件” custom_rules.xml”行清清楚楚这样写着” <copyfile="${source.absolute.dir}/../bin/${ant.project.name}-debug.apk"tofile="${customapk.out}/${ant.project.name}.apk" />”我们要做的就是改成这样即可”<copy file="${source.absolute.dir}/../bin/${ant.project.name}-release.apk"tofile="${customapk.out}/${ant.project.name}.apk" />”
3. 验证签名
Apk签名验证,可使用以下命令行,相关资料可以参考: 相对于手动签名,自动签名可以省去手动给apk打上签名这一步骤,不过自动签名是只能是release版,debug版不存在这一步骤。
如何自动签名,其实在文件”ant.properties”中,已经写得很详细了:
# This file is used to override default values used bythe Ant build system.
#
# This file must be checked into Version Control Systems,as it is
# integral to the build system of your project.
# This file is only used by the Ant script.
# You can use this to override default values such as
# 'source.dir' forthe location of your java source folder and
# 'out.dir' forthe location of your output folder.
# You can also use it define how the release builds aresigned by declaring
# the following properties:
# 'key.store' forthe location of yourkeystore and
# 'key.alias' forthe name of the key to use.
# The password will be askedduring the build when you use the 'release' target.
根据其提示,在这个文件中添加如下几句即可:
注意,这里”key”是签名key,,是其密码。这里可能会有一个这样一个错误。
引起这个错误的原因,就是unix与window的式问题,也就是将”/”,写错了””。
ok,关于ant签名差不多就到这里了,希望对大家有用。
cocostudio2.0 碰到的问题 自己的项目前面做完了,最近和同事一起做另外一个项目,因为我以前用的是cocostuido1.6版本的,而他用的是cocostudio2.0版本,所以,刚开始的时候,还是
Bullet(Cocos2dx)之优化PhysicsDraw3D 为了测试bullet物体的大小,匆匆写完的PhysicsDraw3D的效率低的要命,这也是为什么cocos2dx弃用了DrawPrimitives,而去使用DrawNodeDrawPrimitives每次绘制都去调用glDr
cocos2dx-3.0() ScrollView 缩放 及 touch新用法 转自
标签: ant编译工具
本文链接地址:https://www.jiuchutong.com/biancheng/372631.html 转载请保留说明!上一篇:cocos2dx 3.2 利用clippingNode把图片裁剪成圆形,接口可直接使用(cocos2d schedule)
友情链接: 武汉网站建设