为cocos2dx添加ndk库
来源:互联网 发布:冰箱品牌 知乎 编辑:程序博客网 时间:2024/05/11 09:16
碰到很多坑:
1:引用库定义成include $(BUILD_SHARED_LIBRARY),结果生成了两个so文件,应该把库声明为BUILD_STATIC_LIBRARY
2:把库的java放到了项目之下,又把jar文件重复引用,导致Unable to execute dex: Multiple dex files define错误
3:库中用到了exception,所以android编译的时候要加上APP_CPPFLAGS := -frtti -fexception
4:修改application name为android:name="com.soomla.store.SoomlaApp" 同时要service和receiver加上配置,否则,没办法监听购买的消息
5:在游戏入口文件中,OnCreate要设置StoreControllerBridge.initialize(mGLView, new MuffinRushAssets(), "AAA", this);
添加Soomla的付费系统:
--jni
--classes
cocos2dx_StoreController.cpp 商店系统的初始化,以及向运营商发送购买请求buyMarketItem,都是通过JniHelpers::jniCommonVoidCall调用java接口
cocos2dx_StoreInfo.cpp 物品配置信息管理器,获取价格,描述等,也是通过JniHelpers::jniCommonVoidCall调用java接口
cocos2dx_StoreInventory.cpp 游戏内的虚拟物品管理器,通过虚拟货币购买虚拟物品,本地管理,不需交互运营商,也是调用java接口
com_soomla_cocos2dx_store_EventHandlerBridge.cpp 为JNICALL函数,当物品购买成功失败等等的java回调的地方,通过cocos2dx_EventHandlers::getInstance()转发给c++中的EventHandler进行处理
--与其他平台公用的类
--classes
cocos2dx_EventHandlers.cpp 事件分发管理器
EventHandler.cpp 事件处理器,向分发管理器注册自己。
jni
以上文件联合libcocos2dx打包成lib文件,在项目中通过$(call import-module,ccstore_shared)加入项目的动态库中
需要实现的java接口:
需要引用soomlastoreactivity.jar,实现具体的商店系统
--com.soomla.cocos2dx.example
MuffinRushAssets 继承自IStoreAssets,获取商店物品配置信息
--com.soomla.cocos2dx.store
StoreControllerBridge 实现cocos2dx_StoreController调用的接口,最终通过库中StoreController实现
StoreInfoBridge 同上
StoreInventoryBridge 同上
EventHandlerBridge回向BusProvider中注册自己,当购买事件回调的时候,会调用响应的JNICALL函数,把事件转发给c++层
打包成jar文件,在项目中把添加java库依赖,到此商店系统完成。
- 为cocos2dx添加ndk库
- 为eclipse添加NDK
- 为cocos2dx项目添加Android闪屏页
- cocos2dx android ndk 加载动态库(.so)
- android NDK:如何添加预编译静态库 libwebrtc_yuv.a为例
- cocos2dx,ndk编译protobuf
- 在cocos2dx-2.2.2中为UIWidget添加动画
- cocos2dx 中 Android NDK 加载动态库的问题
- cocos2dx 中 Android NDK 加载动态库的问题
- cocos2dx 中 Android NDK 加载动态库的问题
- Cocos2dx/NDK .a静态库的制作与使用
- Eclipse + ndk+ cocos2dx 调试Cocos2dx 程序
- cocos2dx-3.0(22) 添加依赖库方法
- cocos2dx 3.0 整合 cocostudio添加类库
- cocos2dx 添加库文件,记录下
- cocos2dx添加第三方库注意事项
- Win7+Eclipse+Android+NDK+Cocos2dx
- Android NDK 建立cocos2dx项目
- 浙江大学PAT上机题解析之2-06. 数列求和
- java 对象切割
- iOS开发之-Grand Central Dispatch
- 布尔运算求两数和(GO 语言实现)
- htmlparser的用法
- 为cocos2dx添加ndk库
- Standord Machine Learning -- 第九讲 推荐引擎
- 化简复杂逻辑,编写紧凑的if条件语句(三):确定最简的if子句顺序
- HDU 3478 Play with Chain (Splay树)
- 软考知识点-信息安全技术基础
- VB.net学习笔记(十八)异常处理
- java中的匿名内部类总结
- UVAOj 127 纸牌游戏
- 我和小伙伴们一起学Unity3D(六)碰撞与触发器