cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin

时间:2023-02-07 00:25:21

win32的项目移植到Android平台,除了可以使用cygwin来帮助完成编译打包so文件,也可以使用NDK来完成这项工作,当然,NDK的版本要高于R7B才能支持

1.设置cocos2dx根目录下的create-android-project.bat

使用notepad++打开该create-android-project.bat文件,设置以下变量,修改成自己的pc对应的路径。 [python] view plaincopyprint?
  1. set _CYGBIN=D:\cygwin\bin  
  2. ..  
  3. set _ANDROIDTOOLS=D:\adt-bundle-windows\sdk\tools  
  4. ..  
  5. set _NDKROOT=D:\android-ndk-r8c  

2.运行create-android-project.bat,创建Android项目

首先要求输入包名,我这里输入 com.nickwang.cardgame2然后要求输入项目名,这里输入 cardgame2最后要求输入Android构建版本,我这里输入  android-17cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
这时,就能在cocos2dx根目录下看到cardgame3的项目了。

3.拷贝源码和资源

将原win32项目下.h 文件和.cpp文件拷贝到cardgame3下的Classes文件夹。将原win32项目下的图片资源拷贝到cardgame3下的Resources文件夹。

4.拷贝cocos2dx 的java库

将cocos2dx根目录\cocos2dx\platform\android\java\src下的java源码,拷贝到新建Android项目proj.android的src下。

5.将proj.android项目导入到Eclipse,并设置项目的build属性

项目导入后,右键项目->properties->Builder,进入下面的设置界面cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
点击New,出现如下界面:cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
点击Program,选择OK,跳出新的设置界面。如下:首先设置main界面的相关参数。cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
按照图中所示,设置ndk下的ndk-build.cmd路径到Location下,设置当前项目到Working Directory下。接下来设置refresh界面相关参数:cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
设置了Specific resouces为当前项目的jni目录。然后在Enviroment中新建变量NDK_MODULE_PATH,变量值为cocos2dx主目录和cocos2dx主目录\cocos2dx\platform\third_party\android\prebuiltcocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
接着配置BuildOption界面的相关参数。cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
然后就配置完成,点击OK,回到主界面。

6.修改Android.mk配置

修改proj.android/jni/Android.mk文件的配置,加入所有的cpp文件路径。如果在此处遇到报错Cannot find module with tag 'CocosDenshion/android' in import path ,请参考:cocos2dx在Eclipse下编译报错:Cannot find module with tag 'CocosDenshion/android' in import path
同时请注意文件格式,不要加入不需要的字符。 贴一下我的完整的Android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := game_shared
LOCAL_MODULE_FILENAME := libgame
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
../../Classes/PokerScene.cpp \
../../Classes/Poker.cpp \
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static
$(call import-add-path,D:/cocos2d-2.0-x-2.0.4)
\
include $(BUILD_SHARED_LIBRARY)
$(call import-module,CocosDenshion/android) \
$(call import-module,cocos2dx) \
$(call import-module,extensions)

7.编译当前项目

先选中当前项目,再点击Eclipse菜单栏的project->clean,则项目开始编译了。