下载cocos2d-x3.0rc后根据官方教程进行环境配置等等一系列过程没有遇到什么问题

打包apk时出现一些问题:

按照官方教程cmd下运行cocos run -p android -m release进行apk打包,会出现“xxxxx\ant 不是内部或外部命令,也不是运行的程序”

查看环境变量PATH=%ANT_ROOT%/bin早已配好,cmd下也可以直接运行ant,所以暂不知道什么原因导致出现的这个问题

谷歌一下解决方案,需要手动ant:

在cmd下输入ant clean release -f 自己项目下的build.xml -Dsdk.dir=${ANDROID_SDK_ROOT} 即可在bin目录下看到打包好的apk文件了。

打包release版本的apk需要签名

首先要生成key.store和key.alias,有两种生成方法,1.用eclipse,2.用KeyTool和jarsigner,我只记录第二种

KeyTool在java的bin目录下

cmd下java的bin目录下    keytool -genkey -v -keystore my-release-key.keystore -alias my-release-key.keystore -keyalg RSA -keysize 2048 -validity 10000

-genkey    产生证书文件

-keystore  指定密钥库的.keystore文件

-keyalg     指定密钥的算法

-alias       产生别名

-validity    有限时间

之后会有密码和一系列问题需要输入即可,证书会生成在java的bin目录下

注意:在用keytool生成数字证书时必须保证:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。否则下一步签名时会出现错误:jarsigner: 找不到 androidapp.keystore 的证书链。androidapp.keystore 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。

最后是给release版本的apk签名

在项目下的ant.properties文件中加入以下代码后用ant打包release版本的apk就可以自动签名了(密码是生成证书时自己输入的密码)

key.store=my-release-key.keystore
key.alias=my-release-key.keystore
key.store.password=123456
key.alias.password=123456

或者将没有签名的release版本apk和key.keystore放在用一个目录

cmd下java的bin目录下   jarsigner -verbose -keystore my-release-key.keystore -signedjar test-release_signed.apk test-release-unsigned.apk my-release-key.keystore my-release-key.keystore

这样也能将apk签名

参考文章

http://www.cnblogs.com/ghj1976/archive/2011/07/18/2109381.html

http://blog.csdn.net/houshunwei/article/details/7732183

http://www.cnblogs.com/sw926/p/3240295.html

05-26 04:02