下面的方法在win7和Win10平台上,对cocos2d-x-3.14.1和cocos2d-x-3.16两个版本都试过,没有问题。
一开发环境搭建
已经搭建好环境的,这部分可以直接跳过。网上有大量教程,在此只是简略描述下。安装安卓开发环境推荐使用CodeWorksforAndroid-1R5-windows.exe。这是一键安装安卓开发包,安装中最好打开翻墙工具。边下载边安装,需要耐心等待。
一、win7 64位系统搭建Android开发环境需要的软件
1、cocos2d-x 3.16
2、Visual Studio 2013
3、Android SDK (其中包括Eclipse)
4、Android NDK
5、Ant
6、Python 2.7.x。cocos要求必须是2.7的各个版本,不要下载3.x版本。
二 软件安装
1、Visual Studio 2013
2、Python 2.7.x
3、JAVA JDK。需要使用较高的版本,例如jdk1.8.0_77,之前使用jdk1.7.0_71编译会报错。如果编译报错,检查下环境变量里JAVA_HOME的值,看看是不是用的是低版本的。这个坑花了我一个小时排查。
4、cocos2d-x 3.16 Android SDK Android NDK Ant 这些软件都是解压包,不需要安装,解压就可以。
二创建新项目
1、打开引擎根目录,例如“D:\GameEngines\Cocos\cocos2d-x-3.16”,按Shift+鼠标右键,打开命令行窗口。
2、执行“setup.py”。按照提示设置环境变量(ant的路径需要带bin,如D:\SDKs\NVPACK\apache-ant-1.8.2\bin)。需要重启命令窗口或者重启电脑。
3、键入“cocos new项目名称 -p 包名 -l 语言cpp -d 项目路径”,如:“cocos new DavidTest -p com.CrazyEngine.DavidTest -l cpp -d ./Games”,会在当前文件夹下创建新的文件夹Games,Games里面会生成一个新项目DavidTest,也可以在-d后面指定绝对路径在其它地方创建。
参考文献:官方文档http://cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game和网上一篇博客http://www.itdadao.com/articles/c15a1228235p0.html。
三编译和运行
各个平台的项目文件都在根目录下的文件夹build。http://www.cocos2d-x.org/wiki/Getting_Started_with_Cocos2d-x。
3.1 Win32
将cocos2d-win32.sln直接拖到VS 2015上打开即可。
3.2 iOS
Mac下双击cocos2d_tests.xcodeproj启动即可。
3.3 Windows上编译Android
打开项目根目录(也就是文件夹proj.android、proj.android-studio、proj.win32所在的目录),例如“D:\GameEngines\Cocos\cocos2d-x-3.16\Games\DavidTest”,按Shift+鼠标右键,点在此次打开命令窗口。
执行“cocos.py compile -p android --ap android-20”。注意,下面都是我自己跳过的坑,花了两天时间趟平。
1、命令中cocos.py必须加.py,否则报错no space left on device。
2、-p android用于指定编译平台,-p后必须是android,不是包名。
3、--ap android-20用于指定使用的SDK版本,否则默认会使用android-13,版本太低和太高都容易出错。
4、如果只想编译so文件,在后面加上“--no-apk”就行了。去掉就能直接编译出apk包了。
这个方法同样可以用于编译引擎自带的例子程序。
参考文献http://www.jianshu.com/p/3d0cc85460d1和http://www.itdadao.com/articles/c15a1228235p0.html。
***********************************************************************
下面是不成功的方案,仅供自己参考用。
***********************************************************************
官方的编译说明http://www.cocos.com/docs/native/v3/getting-started/setting-up-development-environments-on-windows7-with-eclipse/zh.html,但是在新的版本中,生成的项目已经根本找不到build_native.py了。
自己尝试的方案:
直接编译E:\GameEngines\Cocos\cocos2d-x-3.16\tests\cpp-tests\proj.android报错:
Android NDK:jni/Android.mk: Cannot find module with tag 'cocos2d' in import path
Android NDK: Areyou sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: Thefollowing directories were searched:
Android NDK:
jni/Android.mk:25:*** Android NDK: Aborting. . Stop.
解决方案:在include $(CLEAR_VARS)一行下面添加下面四行即可开始编译so文件:
$(callimport-add-path,$(LOCAL_PATH)/../../../../)
$(callimport-add-path,$(LOCAL_PATH)/../../../../external)
$(callimport-add-path,$(LOCAL_PATH)/../../../../cocos)
$(callimport-add-path,$(LOCAL_PATH)/../../../../cocos/audio/include)
使用Eclipse编译apk包。需要将cocos2d-x-3.16\cocos\platform\android\java\src里面的java文件都拷贝过来,还需要将cocos2d-x-3.16\cocos\platform\android\java\libs里面三个jar文件都引用到Eclipse工程里。使用jar的方法参考:https://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html。出现一个资源找不到的编译错误,参考:http://blog.csdn.net/lincyang/article/details/17487473。能编译并打包成功,但是运行崩溃。
另一个方案:
试过命令行窗口里在根目录的文件夹build下运行android-build.py,但是还没有尝试设置参数进行编译。