cocos2d-x环境搭建及android移植
2013-06-04 09:43
465 查看
我之前是参考这篇文件配置的http://my.oschina.net/arthas/blog/100076,可以移植win32的项目到android上。但很多情况下不行。
我在win7 x64和win8 x64下都测试成功
下面是我的新的移植android的配置过程
vs2012,也可以是vs2010,或eclipse等其他。vs我是用来开发win32平台的
ndk,在http://developer.android.com/tools/sdk/ndk/index.html下载最新版。我当前版本是android-ndk-r8e
adt,在http://developer.android.com/sdk/index.html下载。我当前版本是adt-bundle-windows-x86_64-20130514
cygwin,虽然ndk已经集成需要的编译器,但还要需要,但为某些地方用到。
cocos2d-x压缩包解压,如我的解压到了E:\cocos2d-2.1rc0-x-2.1.3,这是我的cocos2d-x目录,在这里记为CC_HOME
说实话,vs2012用起来和vs2010差不多,很快就习惯的,还在用vs2010的可以试下。
ndk直接解压压缩包行。
adt解压后,还要运行SDK Manager.exe, 安装需要的sdk。尽量把常见的android版本sdk都安装了吧。
在%CC_HOME%下双击cocos2d-win32.vc2012.sln,打开后右击解决方案,添加,找到cocos2d-x项目即可。在引导的页面中选择需要的东西即可。如果是hello world,可以不选Box2D。
这个方法缺点是你要加载不必要的样例项目。
方法二:
在其他地方新建一个解决方案,把Create directory for solution选上(这东西就是右下角那个复选框,中文自行脑补)。创建成功后打开%CC_HOME%,复制cocos2dx、CocosDenshion、extensions这三个文件夹到新建的解决方案文件夹。也可以不复制,按http://www.cnblogs.com/andyque/archive/2011/09/27/2192920.html这个网址操作也行。不过不同版本cocos2d-x写的工程模板里配置不一,可能要修改项目属性中
![](https://img-blog.csdn.net/20130604092341765)
这三个里一些配置,有点麻烦。
然后,把%CC_HOME%\Debug.win32中的一些dll和lib复制到新建的解决方案文件夹下面的Debug.win32中,具体哪些在你编译程序时就会有提示。或者,可以把%CC_HOME%\ Debug.win32整个复制过去。
如无意外,上面两种方法都可以让你编译运行win32平台的cocos2d-x程序。而且,用模板新建的本来就可以run起来的。有个要注意的地方,新建的源文件都要放到项目文件夹下的Classes里,而不是一般默认的proj.win32文件夹里。
:: modify it to work under yourenvironment
set _CYGBIN=d:\cygwin\bin
这是cygwin目录,但我们现在用不到。
:: modify it to work under yourenvironment
set _ANDROIDTOOLS=E:\android\adt-bundle-windows-x86_64-20130514\sdk\tools
这是adt的,请自行更改到你的文件夹。
:: modify it to work under yourenvironment
set_NDKROOT=e:\android\android-ndk-r8e
这是ndk的,同上。
然后双击create-android-project.bat,按提示输入。例如:
org.cocos2dx.hello
hello
1
这样输入,就可以在%CC_HOME%目录下创建一个名为hello的项目。最后的“1”会根据你安装的android 版本SDK决定。
进入刚创建的hello文件夹,里面三个文件夹中有一个是proj.android。若是你是用上面方法二来新建vs工程,则要把它复制到那个目录。打开proj.android,若你是用cygwin编译,则可能要对build_native.sh进行修改,但这里忽略。
![](https://img-blog.csdn.net/20130604092449203)
选中图中的选项,点next,选择之前的proj.android目录,直接finish就行。
右击工程,选择属性。选Builders, 点右边的New…,弹出形如下面的配置框:
![](https://img-blog.csdn.net/20130604092537578)
Name可以随便改,最好改成工程相关的,我现在这里这个名字也不好。在Main页下,Location可以通过点Browse File System...,选择ndk目录下的ndk-build.cmd;Working Directory点第一个选择当前工程。点Refresh页,选择如图:
![](https://img-blog.csdn.net/20130604092627453)
在Environment页,New...一个环境变量,名为NDK_MODULE_PATH,值为E:\cocos2d-2.1rc0-x-2.1.3\;E:\cocos2d-2.1rc0-x-2.1.3\cocos2dx\platform\third_party\android\prebuilt\,其中的cocos2dx目录修改成你安装的地方。
点BuildOptions页,修改成如下:
![](https://img-blog.csdn.net/20130604092708484)
再点击SpecifyResources...,勾选上当前项目下的jni文件夹,其他不要勾,点Finish。
点击再次ok关闭配置。
可参考http://blog.csdn.net/xiawei32/article/details/7526262和http://www.verydemo.com/demo_c131_i62662.html
方法一:把下面的代码复制到一个.bat文件里,再把这文件复制到proj.android目录下,运行即可。
方法二: 如果是用cygwin编译,那么build_native.sh里本来就包含复制代码。
这样可以不用一个个写cpp文件了。
在cygwin编译时我是用这个的:
具体可参考http://www.cocos2d-x.org/boards/6/topics/5321
另外,注意Android.mk里的LOCAL_CPPFLAGS := -std=c++11和在Application.mk后面加一行NDK_TOOLCHAIN_VERSION=4.7,为的是使用gcc4.7来编译,并且使用c++11特性。
希望你能成功。
我在win7 x64和win8 x64下都测试成功
下面是我的新的移植android的配置过程
开发用到的工具及基本准备
cocos2d-x,下载地址是http://cocos2d-x.org/projects/cocos2d-x/wiki/Download,我现在用的版本的是http://cocos2d-x.googlecode.com/files/cocos2d-2.1rc0-x-2.1.3.zipvs2012,也可以是vs2010,或eclipse等其他。vs我是用来开发win32平台的
ndk,在http://developer.android.com/tools/sdk/ndk/index.html下载最新版。我当前版本是android-ndk-r8e
adt,在http://developer.android.com/sdk/index.html下载。我当前版本是adt-bundle-windows-x86_64-20130514
cygwin,虽然ndk已经集成需要的编译器,但还要需要,但为某些地方用到。
cocos2d-x压缩包解压,如我的解压到了E:\cocos2d-2.1rc0-x-2.1.3,这是我的cocos2d-x目录,在这里记为CC_HOME
说实话,vs2012用起来和vs2010差不多,很快就习惯的,还在用vs2010的可以试下。
ndk直接解压压缩包行。
adt解压后,还要运行SDK Manager.exe, 安装需要的sdk。尽量把常见的android版本sdk都安装了吧。
win32平台开发
安装模板:
进入%CC_HOME%\template\msvc,双击对应的js文件。或者在%CC_HOME%目录下点击install-templates-msvc.bat即可安装全部。新建工程:
方法一:在%CC_HOME%下双击cocos2d-win32.vc2012.sln,打开后右击解决方案,添加,找到cocos2d-x项目即可。在引导的页面中选择需要的东西即可。如果是hello world,可以不选Box2D。
这个方法缺点是你要加载不必要的样例项目。
方法二:
在其他地方新建一个解决方案,把Create directory for solution选上(这东西就是右下角那个复选框,中文自行脑补)。创建成功后打开%CC_HOME%,复制cocos2dx、CocosDenshion、extensions这三个文件夹到新建的解决方案文件夹。也可以不复制,按http://www.cnblogs.com/andyque/archive/2011/09/27/2192920.html这个网址操作也行。不过不同版本cocos2d-x写的工程模板里配置不一,可能要修改项目属性中
这三个里一些配置,有点麻烦。
然后,把%CC_HOME%\Debug.win32中的一些dll和lib复制到新建的解决方案文件夹下面的Debug.win32中,具体哪些在你编译程序时就会有提示。或者,可以把%CC_HOME%\ Debug.win32整个复制过去。
如无意外,上面两种方法都可以让你编译运行win32平台的cocos2d-x程序。而且,用模板新建的本来就可以run起来的。有个要注意的地方,新建的源文件都要放到项目文件夹下的Classes里,而不是一般默认的proj.win32文件夹里。
移植android
这是最麻烦的地方,我的方法不一定行得通,不过希望你们都能用得上修改create-android-project.bat
打开编辑%CC_HOME%\create-android-project.bat,修改下面的内容,搜索即可找到:: modify it to work under yourenvironment
set _CYGBIN=d:\cygwin\bin
这是cygwin目录,但我们现在用不到。
:: modify it to work under yourenvironment
set _ANDROIDTOOLS=E:\android\adt-bundle-windows-x86_64-20130514\sdk\tools
这是adt的,请自行更改到你的文件夹。
:: modify it to work under yourenvironment
set_NDKROOT=e:\android\android-ndk-r8e
这是ndk的,同上。
然后双击create-android-project.bat,按提示输入。例如:
org.cocos2dx.hello
hello
1
这样输入,就可以在%CC_HOME%目录下创建一个名为hello的项目。最后的“1”会根据你安装的android 版本SDK决定。
进入刚创建的hello文件夹,里面三个文件夹中有一个是proj.android。若是你是用上面方法二来新建vs工程,则要把它复制到那个目录。打开proj.android,若你是用cygwin编译,则可能要对build_native.sh进行修改,但这里忽略。
接着,导入android工程。
打开ADT,就是之前解压的那个。点击菜单-file-import,如下图。选中图中的选项,点next,选择之前的proj.android目录,直接finish就行。
复制源文件
把%CC_HOME%\cocos2dx\platform\android\java\src目录下文件夹复制到android工程源文件(src)目录下配置工程属性。
配置过程按部就班即可。右击工程,选择属性。选Builders, 点右边的New…,弹出形如下面的配置框:
Name可以随便改,最好改成工程相关的,我现在这里这个名字也不好。在Main页下,Location可以通过点Browse File System...,选择ndk目录下的ndk-build.cmd;Working Directory点第一个选择当前工程。点Refresh页,选择如图:
在Environment页,New...一个环境变量,名为NDK_MODULE_PATH,值为E:\cocos2d-2.1rc0-x-2.1.3\;E:\cocos2d-2.1rc0-x-2.1.3\cocos2dx\platform\third_party\android\prebuilt\,其中的cocos2dx目录修改成你安装的地方。
点BuildOptions页,修改成如下:
再点击SpecifyResources...,勾选上当前项目下的jni文件夹,其他不要勾,点Finish。
点击再次ok关闭配置。
可参考http://blog.csdn.net/xiawei32/article/details/7526262和http://www.verydemo.com/demo_c131_i62662.html
复制资源文件。
当前目录在proj.android,复制../Resources下的所有资源到assets里面。下面提供了好用的批处理。方法一:把下面的代码复制到一个.bat文件里,再把这文件复制到proj.android目录下,运行即可。
rd /s /q assets xcopy /e /i /y "../Resources" "assets"
方法二: 如果是用cygwin编译,那么build_native.sh里本来就包含复制代码。
修改jni目录下的Android.mk 和Application.mk文件
Android.mk文件代码如下LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_CPPFLAGS := -std=c++11 LOCAL_MODULE := game_shared LOCAL_MODULE_FILENAME := libgame FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) LOCAL_SRC_FILES := hellocpp/main.cpp LOCAL_SRC_FILES + a396 = $(FILE_LIST:$(LOCAL_PATH)/%=%) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static ...后面的一样
这样可以不用一个个写cpp文件了。
在cygwin编译时我是用这个的:
cppfilestemp1 := $(shell find$(LOCAL_PATH) -type d) cppfilestemp2 := $(shell find$(cppfilestemp1) -name *.cpp) cppfilestemp3 := $(sort$(cppfilestemp2)) cppfiles := $(subst$(LOCAL_PATH)/,,$(cppfilestemp3)) LOCAL_SRC_FILES := \ $(cppfiles)
具体可参考http://www.cocos2d-x.org/boards/6/topics/5321
另外,注意Android.mk里的LOCAL_CPPFLAGS := -std=c++11和在Application.mk后面加一行NDK_TOOLCHAIN_VERSION=4.7,为的是使用gcc4.7来编译,并且使用c++11特性。
输出apk文件。
右击项目,Export,按提示即可。希望你能成功。
相关文章推荐
- cocos2d-x的android环境搭建与win32程序移植至android(查漏补缺版)
- <摘录>cocos2d-x 从环境搭建到win32项目移植android平台
- Cocos2d-x 3.2 win7环境搭建 + android移植
- cocos2d-x 从环境搭建到win32项目移植android平台
- cocos2d-x 环境搭建及android平台移植方法
- 【Cocos2d-X-2.1.4游戏引擎】搭建环境&移植Android
- Cocos2d-x 3.2 win7环境搭建 + android移植
- Cocos2d-x Mac下环境搭建&Android移植
- win7/win8下 cocos2d-x-3.2 Android 移植 环境搭建
- Cocos2d-x 3.2 win7环境搭建 + android移植
- Cocos2d-x 3.2 win7环境搭建 + android移植
- 如何在Windows 7平台搭建Android(eclipse) Cocos2d(c++)开发环境
- mac下搭建cocos2d-x的android运行环境
- 如何在Windows 7平台搭建Android Cocos2d-x3.2alpha0开发环境(官方)
- [置顶] cocos2d-x 2.x版本之win32 window移植android 环境搭配 只用NDK 超级详细 android 环境搭配
- Cocos2d-x 3.2alpha0 windows及android开发环境搭建说明
- Mac下搭建android编译环境,编译cocos2d-x
- cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
- 搭建Mac下cocos2d-x的Android开发环境中遇到的问题
- 如何在Windows 7平台搭建Android Cocos2d-x3.0开发环境