之前自学了近一年android开发,最近又瞎初学cocos开发,配置android的环境真的是繁琐,整了好久终于可以把项目打包Apk了。
下面把自己这次打包的过程分享一下,也方便自己下次打包:
第一步:下载Python
链接:http://pan.baidu.com/s/1c1V35RE
选择里面的python-2.7.5.amd64进行下载,下载之后进行安装即可,一定要记住自己的Python的安装路径,我的安装路径是默认路径C:\Python27
回到桌面,右键“这台电脑”,选择“属性”,点击左侧菜单的“高级系统设置”,点击“环境变量”,在下方“系统变量”的Path处选择“编辑”,在最后方加上这句话
;C:\Python27
注意最前面那个分号";” 这行的意思就是自己python的安装路径
然后点击确定,让环境变量设置完成。
打开命令行,输入“python”,如果出现如下显示则说明python配置成功
第二步:下载cocos2d-x-3.2
链接:http://pan.baidu.com/s/1qY4qVaW
下载cocos2d-x-3.2后得到的是一个压缩包,将此压缩包解压,解压路径自行选择,我解压到了D:\cocos2d这个文件夹下
还是打开“环境变量”,在最后方加上这句话
;D:\cocos2d\cocos2d-x-3.2\tools\cocos2d-console\bin
注意最前面那个分号";”
这个意思就是解压的那个路径加上\tools\cocos2d-console\bin
在命令行输入cocos new HelloWorld -p org.cocos2dx -l cpp -d codes,新建一个cocos2d项目
这个命令的意思是:HelloWorld是新建项目的名称,-p org.cocos2dx是android下项目的包名,-l cpp是新建项目使用的编程语言(注意是字母l,不是阿拉伯数字1),-d codes是保存项目的目录
如果一切正常,那么将会在默认路径看到刚才新创建好的项目文件夹,由于没有更改保存路径,所以应该在默认路径看到创建的新项目,我的路径是C:\users\dell\codes,见图:
打开文件夹能够看到proj.android
第三步:下载JDK
链接:http://pan.baidu.com/s/1c1V35RE,选择里面的jdk-8u91-windows-x64直接安装即可,记住自己的安装路径
之后在环境变量中的用户变量添加变量JAVA_HOME,值就是自己JDK的安装路径
如图:
再在系统变量Path的变量值后添加
;%JAVA_HOME%\bin
之后确定,保存修改的环境变量
在命令行输入java -version,出现下图所示则表明配置JDK成功
第四步:下载SDK、NDK、ANT
链接:http://pan.baidu.com/s/1c1V35RE,选择里面的sdk、apache-ant-1.9.7-bin和android-ndk-r10e直接下载即可,把它们解压到一个文件夹中,我把它解压到了F:\tools中,并将sdk重命名为了Android-SDK
得到如图:
接下来进行配置:
在环境变量中的用户变量新建这几个(这些是我的安装或解压路径,自己参照按照自己的解压安装路径稍微更改即可)
COCOS_CONSOLE_ROOT,值为D:\cocos2d\cocos2d-x-3.2\tools\cocos2d-console\bin
NDK_ROOT,值为F:\tools\android-ndk-r10e
ANDROID_SDK_ROOT,值为F:\tools\Android-SDK
ANT_ROOT,值为F:\tools\apache-ant-1.9.7\bin
填写好了之后,在系统变量中的Path的最后面加上这些:
F:\tools\Android-SDK\platform-tools;F:\tools\Android-SDK\tools;F:\tools\android-ndk-r10e;F:\tools\apache-ant-1.9.7\bin
这里第一项和第二项是配置SDK,第三项是配置NDK,第四项是配置ANT
一定要按照自己的解压路径填好
之后检验配置:
在命令行输入ant -version,可以得到如下结果:
输入adb,可以得到如下结果:
打开cocos2d-x-3.2文件夹(就是把之前cocos2d那个压缩包解药的那个文件夹),打开setup.py
用手机抓拍一张,可以得到如下结果:
第五步:做一些修改
打开之前新建的那个HelloWorld项目,双击cocos2d→cocos→ 3d→CCBundleReader.cpp进行编辑
将其中的ssize_t BundleReader::tell()替换为long int BundleReader::tell(),下图为更改前和更改后
这个如果不改会报错:jni/../../cocos2d/cocos/./3d/CCBundleReader.cpp:94:23: error: return type of out-of-line definition of 'cocos2d::BundleReader::tell' differs from that in the declaration
在网上查了许多,有的说是因为用的是ndk-10的原因,但我试着换了ndk-9依然会报错,也有的说是ndk自己的bug但我也试了很多版本都有这个错,所以还是不知道这个错原因是什么,总之,把那句代码一改就不会报错了。
第六步:打包
首先查看自己的Android-SDK→platforms中是android多少,我的是android-20和android-22,这个默认使用的编译时android-10,如果没有android-10则使用20就行(我的就没有10)
在命令行输入命令进入 HelloWorld项目:
接着输入命令cocos compile -p android --app 20,就开始进行编译了,待编译完成如果看到如下图则编译成功
在HelloWorld→bin→debug→android文件夹下能看到HelloWorld-debug.apk,说明打包apk成功了
在手机上安装下,就可以看到熟悉的画面了