Cocos2d-x 开发学习 Cocos2d-x 2.2.3 Android部署

今天总结出来的部署流程,已经成功把自己的项目编译到android真机上,省去了安装ndk等步骤

环境:
win7 64位

1、导入项目到eclipse

2、导入libcocos2dx
例子:C:\cocos2d-x-2.2.0\cocos2dx\platform\android

3、修改application.mk,加入
NDK_MODULE_PATH:=F:\MyWork\tools\2dx\cocos2d-x-2.2.3;F:\MyWork\tools\2dx\cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt

4、修改项目设置,右键选择properties
(1)【C/C++ build】【Builder Settings】【Use default build command】
F:\MyWork\tools\android-ndk-r9c\ndk-build.cmd
(2)【C/C++ build 】【Environment】【add】
name:NDK_MODULE_PATH
value:F:\MyWork\tools\2dx\cocos2d-x-2.2.3;F:\MyWork\tools\2dx\cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt

5、导入项目资源到assets文件夹内

6、修改android.mk,加载项目中的cpp,该方法有个缺陷如果Classes有子文件夹的话还是得在添加上去


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

替换为
FILE_LIST := hellocpp/main.cpp
FILE_LIST += (wildcard (LOCAL_PATH)/…/…/Classes/*.cpp)
LOCAL_SRC_FILES := (FILE_LIST:(LOCAL_PATH)/=)

感谢楼主的分享!!!

楼主也可以尝试一下3.0的一键打包哦~

另外对于android.mk文件的修改,也可以考虑一下如果cpp文件不是直接放在Classes中,而是放在Classes的子文件夹下又要怎么写。

:14::14::14:

3.0的编译之前已经发过了,后一个问题我研究研究哈

以下是我自己的android.mk文件:

----------------------------------割一下---------------------------------

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

#traverse all the directory and subdirectory
define walk
(wildcard (1)) (foreach e, (wildcard (1)/*), (call walk, $(e)))
endef

#traverse Classes Directory
ALLFILES = (call walk, (LOCAL_PATH)/…/…/Classes)

FILE_LIST := hellocpp/main.cpp
FILE_LIST += (filter %.cpp, (ALLFILES))

FILE_INCLUDES := (shell find (LOCAL_PATH)/…/…/Classes -type d)

#source file will be compiled
LOCAL_SRC_FILES := (FILE_LIST:(LOCAL_PATH)/=)

添加classes目录和下面的子目录

LOCAL_C_INCLUDES := (LOCAL_PATH)/../../Classes \ (LOCAL_PATH)/…/…/Classes/loginregister

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static

include $(BUILD_SHARED_LIBRARY)

(call import-module,cocos2dx) (call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
(call import-module,CocosDenshion/android) (call import-module,extensions)
(call import-module,external/Box2D) (call import-module,external/chipmunk)

感谢您的分享! :801: :801: :801:

这个不会报错吗?

添加classes目录和下面的子目录

LOCAL_C_INCLUDES := $(LOCAL_PATH)/…/…/Classes
$(LOCAL_PATH)/…/…/Classes/loginregister

上面这个如果classes目录下有子文件夹,按第二句的格式添加就行 。

不过我还是菜鸟,目前写过的单机游戏按这个文件还好使:13: