碰到很多坑:

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库依赖,到此商店系统完成。

最新文章

  1. kafka性能参数和压力测试揭秘
  2. html的留言板制作(js)
  3. 【blade04】用面向对象的方法写javascript坦克大战
  4. Y86模拟器安装
  5. LightOJ 1012 简单bfs,水
  6. 【iCore3 双核心板】例程十八:USB_VCP实验——虚拟串口
  7. 选择合适的String拼接方法(这篇博客是我抄的)
  8. DIV背景半透明文字不半透明的样式
  9. Windows内存小结(有好多图,比较清楚)
  10. Delphi 进阶基础技能说明
  11. iphone--有关日历中NSDateFormatter中英文
  12. Windows多线程
  13. shell脚本调试方法
  14. android Handler vs Timer
  15. 2015年百度实习生前端笔试题上海卷a
  16. 主流列式数据库评测:InfiniDB
  17. 模拟电路学习之NMOS开关电路1
  18. vim自动补全头注释与说明
  19. Python3学习之路~5.5 sys模块
  20. UART接口与COM口的区别

热门文章

  1. 用Swift完成不同View Controller之间的切换
  2. PyDev下PyQt 的尝试
  3. C-KMP
  4. 读取sd卡下图片,由图片路径转换为bitmap
  5. C# char[]与string之间的相互转换
  6. cloudflare的新waf,用Lua实现的
  7. JQuery学习(3)
  8. soundPool播放短、频、快的声音
  9. 添加Main-Class到manifest中
  10. Appium - iOS 各种问题汇总