cocos2dx-android开发环境筹建

cocos2dx-android开发环境搭建

1.下载NDK并解压到一个目录下,如:G:\work\android-ndk-r8b

2.安装cygwin(1.7版本以上,csdn上可以下载离线包:http://download.csdn.net/detail/tzhang1119/2921717)

   选择安装内容的时候,选择Devel(点击列表中Devel,将后面的Default改为Install),其余默认即可

3.配置cygwin

在命令行中进入cygwin目录,并执行cygwin.bat,如果你不是用Administrator账号登录的系统,那么会在cygwin\home\文件夹中生成一个以你的登录名命名的新的文件夹。

修改新生成文件夹中的“.bash_profile ”文件,用UE或editplus等文本编辑器打开,在最后增加: 

NDK_ROOT=/cygdrive/G/work/android-ndk-r8b

export NDK_ROOT

然后保存关闭。


4.用UE打开cocos2dx安装目录下的create-android-project.bat,修改

  • set _CYGBIN=C:\cygwin\bin 
    The path of cygwin bin
  • set _ANDROIDTOOLS=D:\anroid\android-sdk-windows\tools 
    The path of android sdk tools
  • set _NDKROOT=D:\anroid\android-ndk-r5b
    The root of ndk
5.运行create-android-project.bat,输入包名和程序名,选择sdk版本,最后自动生成工程文件夹,如果之前已经在其他平台建立了工程,则把工程文件夹下的proj.android整个目录拷贝到之前的工程文件夹下即可


6.打开cygwin32.bat,进入刚才建立的工程文件夹的proj.android目录,命令类似于:

cd /cygdrive/G/work/myapp/cocosworkprj/cocos2d-2.0-x-2.0.3/test/proj.android

运行build_native.sh:

./build_native.sh

执行完成后会在proj.android\libs\armeabi目录下生成需要的.so文件


7.以上建立的工程是默认设置的,不支持Box2D,CocosDenshion等其他库,如果需要支持其他库,参考samples\TestCpp\proj.android\jni下的Android.mk和Application.mk,把这两个文件替换自己工程proj.android\jni目录下的同名文件,把:

LOCAL_SRC_FILES := testcpp/main.cpp

这一句改成类似以下(列举出所有需要编译的cpp文件):

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp

因为create-android-project.bat建立的工程中,android下的main.cpp在jin\hellocpp目录下

LOCAL_MODULE_FILENAME := libtestcpp 这一句是设置最终输出的so文件的名字,也可以*更改

$(call import-module,samples/TestCpp) 这句删除


8.在eclipse里右键新建一个project,选择android下的android project from existing code,选择刚才建立工程的proj.android目录


9.拷贝cocos2dx安装目录的cocos2dx\platform\android\java\src\org\cocos2dx\lib文件夹下的所有文件到自己工程的proj.android\src\org\cocos2dx\lib目录下


10.找到主activity中的:

static {
         System.loadLibrary("game");
    }

把load的库名改成生成的so文件的名字,即LOCAL_MODULE_FILENAME := libtestcpp这句指定的名字去掉前面的lib前缀,比如LOCAL_MODULE_FILENAME指定的名字是libtestcpp

则改为:

static {
         System.loadLibrary("testcpp");
    }

11.在eclipse中运行程序