之前想要移植项目到Eclipse接SDK,走了不少弯路,这算是一个总结和自己的小笔记吧。
转载请注明来自于:http://blog.csdn.net/lulu_cat/article/details/47000721
本文cocos2d-x版本为2.2.6,操作系统为OS X10.10.3
1.环境部分准备:
Android NDK 、Android SDK或者ADT
ADT包含AndroidSDK和Eclipse
在运行ADT中的Eclipse时如果之前没安装过jdk会弹出对话框,进入网页下载安装后才能正常使用
NDK根据cocos2d-x版本情况选择,本文使用的版本为r10d
2.进入环境设置里设置环境:
命令行输入pico .bash_profile打开环境设置
例:
exportANDROID_SDK_ROOT=/Users/techtour/Documents/Android/adt-bundle-mac-x86_64$
exportANDROID_NDK_ROOT=/Users/techtour/Documents/Android/android-ndk-r10d
exportCOCOS2DX_ROOT=/Users/techtour/Documents/cocos2d-x-2.2.6
exportNDK_ROOT=/Users/techtour/Documents/Android/android-ndk-r10d
export PATH=$PATH:$ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_NDK_ROOT
exportPATH=$PATH:$ANDROID_SDK_ROOT/tools
control+x退出时选Y,然后回车保存
命令行输入source .bash_profile刷新环境设置
命令行输入android list target 能查看说明可以了
然后进入命令行在cocos2d-x工程里的proj.android目录下运行android update project -t 1 -p . (此处千万不要把“.”忘了)
3.编译.so
proj.android/jin/Android.mk修改
例:(将用到的CPP填入,注意格式)
LOCAL_SRC_FILES:= hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
cocos2d-x一般会用到的:
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)
$(callimport-add-path, ../../../cocos2dx/platform/third_party/android/prebuilt)
$(callimport-add-path, ../../../cocos2dx)
$(callimport-add-path, ../../../)
$(callimport-module,cocos2dx)
$(callimport-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
$(callimport-module,CocosDenshion/android)
$(callimport-module,extensions)
$(callimport-module,external/Box2D)
$(callimport-module,external/chipmunk)
运行build_native.sh
附:如果出现报cpu-features.c的错,到proj.android/obj/local/armeabi/objs目录下的cpufeatures文件夹删除(此处原因生成原因是已经生成想关.o文件)
local.properties文件下的sdk路径不对也会出现编译错误
4.导入Eclipse
右键->导入
然后将工程导入eclipse中
生成的.so要看看libs里,obj里的都是编译中用的 编译完了就没用了的,当你编译代码的时候 libs/armeabi下面会被清空打包或者调试前要注意
Classes可能会报错,右键点Classes文件夹选择build path -> remove from build path(注意不要删除硬盘上的文件)
5.Eclipse设置
右键->属性
Resources里的LinkedResources检查cocos2d-x相关外链路径
C/C++ Build里的BuildCommand 改为NDK路径下的ndk-build.cmd路径,Environment里添加NDK_ROOT和COCOS2D-X_ROOT
6.调试
Build一下,程序不报错后,连接安卓手机 ,右键项目选择RunAs->Android Application,就能安装了
如果安装或者运行失败,查看Console里的LogCat报错就可看见错误信息
感谢硕子大大和东子在移植的时候一起探讨各种莫名出现的问题和给予的帮助