cocos2d-x环境搭建及android移植

我之前是参考这篇文件配置的http://my.oschina.net/arthas/blog/100076,可以移植win32的项目到android上。但很多情况下不行。

我在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.zip

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都安装了吧。

 

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/7526262http://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 += $(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,按提示即可。

 

希望你能成功。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值