cocos2dx3.3发布apk Domi●Cat

如何编译安装的apk,有很多种方法,一种是使用第三方编译器,例如:eclipse等,一种是纯命令行的方式。 因为对eclipse不熟悉,加上我比较喜欢命令行的工作方式,所以我采用的是纯命令行来编译发布apk。不管是用 第三方工具还是命令行,我们都需要有一个安卓的环境。下面开始一步一步进行。

提醒:系统为win8.1 x64,文中所给出的下载地址,可能需要自备翻墙工具,原因你懂的。(●—●)

安卓环境安装

下载 SDK
安卓环境搭建需要4个东西,它们分别是:java JDKandroid SDKandroid NDKapache ant
1)、下载java JDK
关于java JDK 版本的选择,android开发可以选择 Java SE

2)、下载android SDK
注意:这里有两个选项,我选择 Stand-alone SDK Tools,只单独下载sdk,不需要用下载 android studio。

3)、下载android NDK
根据自己的系统下载相应的版本。

4)、下载apache ant
截止本文时间,最新的版本是 Apache Ant 1.9.4

安装
这里是我的操作步骤,我把所有的需要的东西都放在 E:\Android 文件夹中,方便管理,当然你也可以随便放。
除了java jdk需要安装,其他三个都是解压就可以用了。java jdk的详细安装我就不说那么多了,只需要记录 jdk 和 jre的路径,防止 自己装完后,记不住路径了 - -!

配置环境变量
安装完java jdk后,需要配置环境变量。

1)、java jdk 环境变量
A、新建系统变量 JAVA_HOME 变量,值为:E:\Android\Java\jdk1.8.0_40
B、新建系统变量 classpath 变量,变量值为: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面的“.”不要忘记了);
C、在系统变量path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意变量值之间用“;”隔开)
配置完之后,在cmd中输入java 和 javac,按回车,如果不是输出“java不是内部或外部命令”,就说明配置成功。注意:cmd需要重新打开。

2)、配置 apache ant 环境变量
在path中添加:E:\Android\apache-ant-1.9.4\bin,然后重新打开cmd,输入 ant -v,显示如下:
pic

配置cocos2dx 3.3 的安卓环境

注意:如果你没有装python,需要安装python,并配置python环境变量。
进入cocos2dx 3.3中,打开 setup.py,如果第一次打开,cocos 会安装自己所需要的环境变量,
pic
接下来,cocos2dx会让你输入 NDK路径、android SDK路径、apache ant路径。注意 ant的路径是要输入带 \bin的路径,否则配置不成功。

编译apk

1)、进入androdi sdk路径中,打开 SDK Manager.exe,下载需要的sdk(需要翻墙),勾选Tools的所有, 关于API的下载,基本都要勾选下载,我这里只下载了API 18,对应的安卓版本是 android 4.3.1;
pic

进入项目的目录,例如:E:\ydz3.3\cocos3.3 ,在当前路径打开cmd,输入cocos,如果提示”cocos不是内部或外部命令”, 你需要检查:E:\ydz3.3\cocos3.3\cocos2d\tools目录下是否有cocos2d-console,当然你可以在上面提到的cocos环境变量中逐一检查, 如果没有就从cocos2dx引擎拷贝过来。

2)、开始编译 在cmd中输入:

cocos compile -p android

如果需要选择指定的api版本,需要在后面添加 –ap 18,当然你要确保你的sdk是存在对应的api版本,没有就需要打开 SDK Manager.exe 来下载, 需要注意的是,使用这个命令编译的版本是 debug版本,也是cocos的默认版本。

如果需要编译release版本apk,需要下载一个工具:zipalign.exe,它能够对打包的应用程序进行优化,进行内存对齐。 网上有下载,把下载好的exe放到 android sdk 路径下的 tools文件下。然后输入:

E:\ydz3.3\cocos3.3>cocos compile -p android -m release

在编译过程中,会提示你输入签名的路径,例如: E:\ydz3.3\cocos3.3\ydz.keystore,注意是双反斜杠, 否则报错:value for keystore is not valid. it must resolve to a single path 这样编译的apk是没有签名的,生成 ydz-release-unsigned.apk,不知道为什么,未签名的apk无法安装到真机中。 所以我就尝试发布签名的apk。

生成 .keystore

关于如何生成 keystore ,请参考:http://my.oschina.net/victorHomePage/blog/109638 然后,再进行一次编译,最后生成 ydz-release-signed.apk,安装到安卓机器,运行成功。

一键生成工具

后面打算写一个bat,来一键拉取svn仓库的资源,自动编译apk。后面抽时间慢慢完善工具,写完再放到github上。 写了一个简单的批处理,弄了好一阵svn 的export,好像搞不定,暂时用checkout代替下:

@echo off 
@set workdir=%cd%
@set resourcesdir=%workdir%\Resources
@set svn_bin="C:\Program Files\TortoiseSVN\bin"
@set svn_resource="svn://192.168.0.10/mobilegame/client/ydz3.3/Resources"

rem cd %svn_work%

title Tool
color 3F

@echo.
@echo ************************************************************************
@echo Build Cocos2dx3.3 Apk
@echo ************************************************************************
@echo.


rem del resource
rem rd  %resourcesdir% /s /q

rem 更新
%svn_bin%\TortoiseProc.exe/command:update /path:%workdir% /notempfile /closeonend:3

rem export Resources 
if exist %resourcesdir% (%svn_bin%\TortoiseProc.exe/command:update /path:%resourcesdir% /notempfile /closeonend:3)  else (%svn_bin%\TortoiseProc.exe/command:checkout /path:%resourcesdir% /url:%svn_resource%  /notempfile /closeonend:3)

@echo 当前路径  = %workdir%

cocos compile -p android -m release

@echo build apk OK!

pause

写在最后:这篇教程基本是从零开始,我也是从完全不会,经过自己慢慢查资料,一步步学。主要参考: http://my.oschina.net/Jacedy/blog/350226
http://my.oschina.net/victorHomePage/blog/109638