cocos2d win32工程打包

经过两天的折腾,终于搞出了一个方案,虽然算不上最好的方案,但也算是一种比较可行的方案。

本文使用的cocos版本是cocos2d-x3.10。

话不多说,现在开始。

首先,本文所用到的工具我已经上传到网盘,有需要的可前往下载:

cocos开发工具

一、安装强大的IDE

第一步,当然是安装windows上必不可少的VS啦。3.10可用的vs版本有12,13,15.本文使用的是vs2015专业版。vs的安装没什么好说的,只需要等待就行了。要注意的是默认安装是没有c++环境的,在安装的时候要选自定义安装然后把c++勾选上,也可以安装完成后在新建项目那里安装。

二、安装配置cocos

本人喜欢cocos这个集成引擎(工具),虽然触控已经把它放弃了。cocos集成了cocos2d-x和cocostudio,创建项目的时候可选源代码和预编译库两种,源代码和cocos2d-x在命令行创建项目一样,把cocos2d的源代码拷到工程目录下,所以整个工程的结构就很大,完整编译也要很久。预编译库则不用拷贝引擎源代码,工程结构很小,每次编译都很快,这也是我开始喜欢上cocos的原因。但是,本文所用的方式还是源代码的形式,因为预编译库不支持android studio,直接用命令行打包apk也会出错,所以这个坑就不跳了。

2.1下载安装python2.7

cocos的很多命令都是基于python2.x的,所以安装cocos前要先安装python2.7。下载安装就没什么好说的,安装完成后要把python添加到环境变量,这样才能在控制台直接使用ptyhon命令。

在path后面加上python安装后的根路径,比如我的环境:


注意变量值每个项之间要用英文分号隔开。

设置完成后打开cmd,输入python,出现这个界面表示环境配置成功了。


2.2安装cocos

直接双击cocos安装程序,安装完成之后会在桌面生成cocos和cocostudio两个图标。cocos用于项目管理,可创建项目,分别用vs,android studio和cocostudio打开项目。

环境变量配置,使用cocos安装程序免去了配置环境的麻烦,安装程序已自动配置好环境变量。打开cmd,输入set cocos我们可看到已经成功添加了COCOS_X_ROOT,COCOS_TEMPLATES_ROOT和COCOS_CONSOLE_ROOT这三个变量。

输入set path会发现COCOS_TEMPLATE_ROOT和COCOS_CONSOLE_ROOT已经加入到path变量中去。


输入cocos,看到以下界面表示cocos已经安装并配置完成


2.3创建cocos2d项目

创建项目有两种方式,

第一种是直接在命令行创建,使用命令

cocos new 项目名 -l cpp/lua/js -d 项目存放路径 -p 包名

这种方式创建的项目是拷贝源代码的,即会将cocos2d-x3.10的源代码拷贝到工程目录下。(cocos命令使用的是环境变量配置的路径,环境配置的是3.10的版本,所以使用的是3.10的命令,如果想用其它版本,直接修改环境变量即可,不修改也行,在引擎目录下的tools/cocos-console/bin下打开命令行,然后调用cocos.py来创建项目,参数跟上面一样)

第二种是使用cocos来创建,注意选择引擎版本,引擎类型和项目语言,然后点击完成即可。


项目创建完成后就可以直接打开vs编译win32版本啦,源代码方式创建的项目要编译很久,预编译库创建的项目编译起来跟控制台项目一样快,就是爽!

三、安装并配置jdk

安装过程没什么好说的,安装完成后要配置环境变量

新建一个变量JAVA_HOME,设置它的值为jdk根目录,比如


新建一个变量CLASSPATH,设置它的值为 .;%JAVA_HOME%lib


然后在path后面加上%JAVA_HOME%in,注意项与项之间用分号隔开。


打开命令行,输入java -version和javac -version,出现下面界面表示配置成功了


四、配置安卓SDK、NDK、ANT

下载sdk,ndk,ant并解压,建议解压到一起,方便管理。像我就放到cocos目录下,新建一个tool目录。


接下来是配置这三个的环境变量了,有两种方式

第一种,在cocos2d-x3.10目录下打开cmd,然后执行setup.py命令,它会自动判断有没有配置这些环境,如果没有,则会提示你输入。

输入setup.py后会提示你ndk没有配置


把ndk根目录拖进来,然后按回车确定


NDK配置成功,然后它提醒android没有配置,也就是sdk没有配置。把sdk根目录拖进来,按回车确定


SDK配置成功,然后它提示ANT没有配置,把ant目录下的bin目录拖进来,按回车结束。


重启cmd,分别输入set android,set ndk,set ant会看到这三个环境变量已添加成功。


第二种方式就没什么好说的了,就是手动创建这三个环境变量并设置值。

五、安装Android Studio

安装过程默认即可。第一次启动时会提示设置SDK路径,设置一下即可。

接下来就可以打包APK了。

第一步,新建一个项目HelloWorld,选择源代码方式,cocos2d-x3.10,c++。


第二步,打开Android Studio,导入项目,选择proj.android-studio目录。



注意,3.10版本创建的项目默认使用的grade是2.4,导入之前先检查一下电脑上有没有grade2.4,如果没有的话放进去(上面的网盘上有)。如果不检查的话很大可能会在导入的时候卡死,因为android studio会自动去谷歌官网下一个,然后你懂的。

检查这个路径下有没有东西,如果没有把grade-all-2.4.zip放进去。

C:UsersAdministrator.gradlewrapperdistsgradle-2.4-all6r4uqcc6ovnq6ac6s0txzcpc0

导进去之后会出现下面的错误,这是因为这个版本的android studio需要使用2.10的grade.按照提示更新,刷新一下即可。



第三步,打开cmd编译c++代码。在HelloWorld目录下或者proj.android-studio目录下打开命令行,输入以下命令:

cocos compile -p android --android-studio(如果不想生成apk,加上--no-apk)

如果上面的环境配置都没有错的话,就会出现下面的界面


编译完成后会在HelloWorld/bin/debug/android下面生成一个apk文件。

把apk文件安装到手机或模拟器就可以运行了,或者打开android studio运行。

 

补充:

上面列出的方案只有源代码+android studio一种,昨天晚上回家又试了一下,发现其它方案也是可以的。

一、预编译库+android

编译方式:cocos compile -p android

编译不过的原因:引擎的坑。引擎本身已经预编译好了C++代码,生成的.a文件放在prebuilt/android(win32放在prebuilt/win32)下,我们编译的时候就直接拿这些.a文件过来链接就可以了,不用重新编译引擎源代码。但是!这些预编译的中间文件有问题!触控挖这么大个坑真的好吗,当然cocos是开源的,也有可能是某些欠揍的人干的。不过,作为从官网下的包都会有问题,也只能呵呵了。

解决方法:用源代码的方式新建一个项目,然后编译成android studio的方式(编译成android也行,这就是下面要讲的第二种方案,这个也有坑),然后把编译出来的.a文件复制出来覆盖掉引擎里面的.a文件。

二、源代码+android

编译方式:cocos compile -p android

编译不过的原因:同样是引擎的坑。修改下面这几个文件:


打开这些文件后,可以看到这两行


把它修改为下面这样


原因:这几个文件也不能说它有错,在vs里面编译就没有问题。但是!这是十分不严谨的,有些编译器没有相应的设置就编译不过。ExtensionMacros.h位于这几个文件的上一层,也就是Extension下面。使用../ExtensionMacros.h就可以保证在什么情况下都可以正确找到这个文件,但Extension/ExtensionMacro.h就不一定了,它首先得保证能找到Extension这个相对目录,vs能找到是因为已经在属性设置那里把这个目录Include进来了,换个编译器可能就找不到了。

注:前面这两个坑我都已经填上了,可以在安装完cocos之后,把网盘里面的cocos2d-x3.10.rar解压后替换掉cocos2d-x里面的cocos2d-x3,10。

总结一下:

共有三种打包apk的方式:

预编译库+android:cocos compile -p android

源代码+android:cocos compile -p android

源代码+androidsutdio:cocos compile -p --android-studio

第三种方案编译完成后可导入android studio运行,前面两种暂时测试的结果是导入之后有问题。但无意外,三种方式编译之后都会生成apk文件,直接安装apk文件就可以了。

原文地址:https://www.cnblogs.com/aibox222/p/8797433.html