[置顶] 用android-ndk-r8e交叉编译cocos2d-x-2.1.4Android工程方法(而不再使用Cgywin,注意ndk和cocos2d-x版本)

时间:2022-09-30 16:06:46

第一部分:项目前的准备

<1>在VS2010上面编写cocos2d-x游戏。首先,创建cocos2d-x项目是必须的,不过cocos2d-x-2.1.4版本不再使用cgywin来创建,而是采用命令行。在这里我使用python命令来创建工程,我安装的是python 2.7.3(我用的版本),安装好后,在path下面增加python的环境量:C:\Python27

<2>写批处理文件create-Cocos2d-x-Project.bat来创cocos2d-x工程,同时里面创建了Android工程。批处理内容如下:

方法1:

@echo off
set /p projectName=Please input cocos2d-x project name:
G:
cd G:\AndroidCocos2dxFile\cocos2d-x-2.1.4\cocos2d-x-2.1.4\tools\project-creator
python create_project.py -project "%projectName%" -package com.qingxue.game"%projectName%" -language cpp
pause
方法2:

@echo off
set /p projectName=请输入项目名称:
if "%projectName%"=="" goto inputError
set /p packageName=请输入包标示名:
if "%packageName%"=="" goto inputError
create_project.py -project %projectName% -package %packageName% -language cpp
pause
exit
:inputError
@echo 项目名称或者包标示名不能为空!
pause
点击批处理,输入工程名字,运行完批处理后,在cocos2d-x的projects目录下即可找到刚创建的工程,打开工程,编写好游戏,注意包名,不然你这次游戏安装后,相同包名的上个游戏就会被顶掉。因此我用com.qingxue.game + 应用程序名字作为包名来区分不同的程序。

第二部分:一切准备就绪,开始开发游戏

<1>点击create-Cocos2d-x-Project.bat创建cocos2d-x和Android工程,(这时会用到cgywin,如果你没安装cgywin,则会提示你找不到cgywin,而无法进行下面的工作,所以cgywin是必须的,只不过不用在Cygwin Terminal里面用./build_native.sh完成交叉编译)

<2>在cocos2d-x中完成游戏编写。

<3>在Eclipse上导入到Android工程,将Resources文件夹的内容拷贝到assets文件夹中(不用管Classes文件夹,由于后面会用jni,所以ndk会编译里面的.cpp和.h文件。

<4>在要编译的工程上面右键--->properties---->Builders--->New--->Program 填写上Name如:NDK_XXX(XXX我习惯写成程序名字)。

<5>Main下面的路径如下(这个NDK路径在环境变量中由NDK_ROOT指定):
G:\AndroidCocos2dxFile\android-ndk-r8e\ndk-build.cmd

<6>Refresh选择第三个,即:
The project containing the selected resource

<7>Environment下面新建:
NDK_MODULE_PATH

内容如下:
G:\AndroidCocos2dxFile\cocos2d-x-2.2.3;G:\AndroidCocos2dxFile\cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt

<8>Build Options选项如下:
选择右下角Specify Resources,然后选择jni(正因为这个选择,才可以编译classes文件)

切记,配置好后,将CDT选项去掉。并将这个NDK UP到最上面!!!不然就用CDT进行编译了,而非NDK !

<9>修改Android.mk文件如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := game_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

FILE_LIST := hellocpp/main.cpp

FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.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

include $(BUILD_SHARED_LIBRARY)

$(call import-module,CocosDenshion/android) \
$(call import-module,cocos2dx) \
$(call import-module,extensions)

 

<10>将Resources下面的资源文件添加到Eclipse Android工程的assets下面。

<11>Run as,编译完成后,就可以像Android工程一样布置到手机上啦!!!

第三部分:为程序添加支付SDK