cocos2dx安卓平台下脚本开发和交叉编译

摘要

1、面临问题:调用的入口、脚本的解析器、cocos2dx源代码、脚本的扩展类等等均是由C/C++实现,但是安卓工程无法编译C/C++代码

2、解决办法:将以上由C/C++实现的部分编译成*.so库,在安卓工程中对库进行启动调用

搭建Android环境

1、安装Java JDK 和 Eclipse IDE

2安装Android SDK

3安装ADTAndroid Development Tools

4安装NDK

5安装Cygwin

6安装Cocos2d-x

(以上见http://www.cnblogs.com/graphicsme/archive/2012/11/06/2756914.html


创建Android工程

7、修改Cocos2D安装目录下的“create-android-project.bat”文件。将_CYGBIN_ANDROIDTOOLS_NDKROOT三个分别设置成Cygwinbin 录(c:\cygwin\bin)、Android SDKtools目录、NDK根目录

---注意:路径不可以含中文字符


8、运行“create-android-project.bat”生成android工程,依次按要求输入,最终在Cocos2D的根目录下会产生所输入的项目名称的文件夹(工程名假设为ABC)

---注意:输入包路径的时候必须按照xx.xx.xx的格式,否则会报错


9、将ABC工程的cpph代码拷贝到Classes中,将资源和脚本文件拷贝到Resources


10、由于我们要将cocos2dx的实现源代码全部打包到so中,那就需要对makefile文件进行修改:打开/proj.android/jni/Android.mk


11、关键字LOCAL_SRC_FILES,这个关键定义了需要打包到so中的.c.cpp文件(不包含.h文件)。我们需要手动添加的内容包括:程序的入口AppDelegate.cpp解析器、扩展文 件。可能你会问为什么没有对Cocos2dx的代码进行打包呢?!继续向下看你会找到答案。


12、关键字LOCAL_C_INCLUDES,这个关键字定义了包含的头文件位置,精确到文件夹就可以


13、makefile文件的最后几行是$(call import-module,XXX),这是加载了XXX位置的makefile文件,这就是我们为什么不用对Cocos2dx代码进行手动打包的原因,因为coco2dx文件 中提供了makefile文件,只要通过本个文件对其调用即可完成对cocos2dx代码的打包。


14、完成对Android.mk文件的修改之后,运行bash build_native.sh即可完成so文件的生成。


15、打开配置好的eclipse导入存在的安卓工程即可


可能遇到的问题总结

1、找不到某个头文件

打开Android.mk文件找到LOCAL_C_INCLUDES,将头文件所在的文件夹进行添加即可,路径是相对于修改的mk文件

 

2、某某某函数undefined

这是由于只包含的函数的头文件而没有对实现文件进行包含,打开Android.mk文件找到LOCAL_SRC_FILES进行添加即可,路径是相对于修改的mk文件

 

3、函数多重定义

这种情况一般会提示multiply,外加那里first define了巴拉巴拉的。这些提示全忽略,这个问题的原因多数只有两种:一是头文件被互相包含或多次包含了,再就 .c/.cpp文件被编了两次。

 

4、AndroidManifest.xml错误

这是由于配置文件找不到程序的图标导致的,到ABC/proj,android/res路径下创建一个drawable文件夹,在里面添加icon,.h为程序图标即可

 

5说明:

build_native.sh文件会做几件事情,第一就是把ABC/Resources中的文件(包括lua脚本和资源)拷贝到ABC/proj.android/assets中,Eclipse打包程序到手机中时拷贝 的就是assets中的资源。第二个功能是加载文件名为Android.mk的文件,这个就是传说中的的makefile文件。

 

6、NDK_ROOT未定义:在Windows的系统变量里设置一下就可以了,注意ndk版本

 

7、无法识别cocos2dx:Properties > Java Build path > Link Source,选择 ......\cocos2d-2.0-x-2.0.4\cocos2dx\platform\android\java\sr


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值