cocos2d-x 移动MM平台SDK接入
注意: cocos2d-x 3.x版本后可以使用AnySDK来接入第三方SDK, 比下面介绍的方法方便很多, AnySDK官网
cocos2d-x版本:2.2
开发平台:Windows
官方Wiki介绍了如何接入第三方SDK, 不过是英文的, 我在此更详细的介绍下.官方Wiki地址:点击打开链接
打开ADT(Android Develop Tool, 就是你用来开发Android的Eclipse), 导入cocos2d-x/plugin文件夹下的所有项目, 如图:
这些项目中项目名Hello开头的都是官方的示例, 其中HelloIAP和HelloIAP-JS是和付费相关的示例, 剩余Hello开头的是与广告平台和社交平台的示例. 剩下lib开头的项目中, libPluginProtocol这个项目中是供其他lib开头项目使用的. 还有一个91SDK开头的项目, 这个项目存放了91平台使用过程中的一些UI文件, 如果要使用91平台进行付费, 就必须在你的项目中引入这个项目. 最后还需要libcocos2dx这个项目, 选择导入目录的时候使用cocos2d-x/cocos2dx即可, eclipse会自动寻找.
导入工作完成后, 项目文件上有可能会感叹号或者叉叉, 修改下项目的属性即可.
确保项目文件夹上没有叉叉或者感叹号就可以继续下一步了.
新建一个Android项目, 这里我取名为libPluginMobileMM. 注意这里的包名一定要使用org.cocos2dx.plugin
点击下一步, 此处设置项目为Library, 然后点完成.
设置下新建项目的属性, 将libPluginProtocol这个项目引入到项目中.
在此项目中新建一个文件夹, 取名为sdk(注意大小写), 然后将移动MM SDK文件夹中的.jar文件拷贝到sdk中, 剩下的两个.so文件先不管. 右键刚刚拷贝进来的.jar文件, Build Path -> Add to Build Path. 现在可以开始在新建的项目中写代码了. 新建一个类, 这个类必须实现且只能实现一个接口InterfaceIAP, 代码可以参考libPluginNd91和移动MM给的Demo项目中代码来写.
package org.cocos2dx.plugin;
public class AnalyticsFlurry implements InterfaceAnalytics {...public AnalyticsFlurry(Context context) {mContext = context;}
}
代码写好后记得生成一下, 然后在项目中添加一个文件ForManifest.xml, 此文件可以去libPluginNd91中拷贝一份, 不过里面的内容需要修改. 打开ForManifest.xml文件, 将<applicationCfg>节点中的内容和<permissionCfg>节点中的内容替换成移动MM的, 可以去移动MM Demo项目的AndroidManifest.xml中找. 然后再在项目中添加一个build.xml文件, 这个文件同样可以去其他项目中去拷贝, build.xml文件中开头project name的值要改成自己的项目名称, 比如:
<?xml version="1.0" encoding="UTF-8"?>
<project name="libPluginMobileMM" default="plugin-publish">...
</project>
以上这些都做好后, 打开cocos2d-x/plugin/plugins文件夹, 在此建一个文件夹, 我这里取名mobilemm, 在mobilemm文件夹中新建文件夹proj.android, 将刚刚写好的libPluginMobileMM文件夹下中的内容全部拷贝到proj.android中.
接下来修改cocos2d-x/plugin/tools/config.sh这个文件, 用记事本方式打开, 将mobilemm文件夹名添加到ALL_PLUGINS中:
export ALL_PLUGINS=("protocols" \
"flurry" "umeng" \
"alipay" "nd91" "mobilemm")
接下来双击运行(或者使用Cygwin控制台)cocos2d-x/plugin/tools下的publish.sh文件. 运行中可能会要求你输入NDK的目录地址, Android SDK的目录文件夹地址和ant的地址. 输入完成后等待处理完成. 处理完成后再运行cocos2d-x/plugin/tools下的gameDevGuide.sh, 输入你的项目的Android项目目录地址, 选择mobilemm或者你要使用的其他插件, 然后下一步, 等待处理完成即可. 这部分官方也有Wiki:点击打开链接
接着, 还需要在你的C++代码和java代码中添加一些代码:
protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); PluginWrapper.init(this); // for plugins// If you want your callback function can be invoked in GL thread, add this line:PluginWrapper.setGLSurfaceView(Cocos2dxGLSurfaceView.getInstance());}
C++部分如何使用可以参考HelloIAP这个项目.
还记得有两个.so文件吗, 将这两个放到你游戏项目的jni文件夹中, 如图:
然后修改上图中的Android.mk文件, 我把我自己的Andorid.mk贴出来, 照着修改就行了.
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := casdkjniLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcasdkjni.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := identifyappLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libidentifyapp.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := cocos2dcpp_sharedLOCAL_MODULE_FILENAME := libcocos2dcppMYSRC_ROOT := $(LOCAL_PATH)/../../Classes
FILE_LIST += $(wildcard $(MYSRC_ROOT)/*.cpp)
LOCAL_SRC_FILES := hellocpp/main.cpp
LOCAL_SRC_FILES += $(FILE_LIST:$(LOCAL_PATH)/%=%)LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../ClassesLOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static \
PluginProtocolStatic
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_staticLOCAL_WHOLE_SHARED_LIBRARIES += casdkjni
LOCAL_WHOLE_SHARED_LIBRARIES += identifyapp
#LOCAL_SHARED_LIBRARIES := casdkjni identifyapp 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)
$(call import-module,plugin/publish/protocols/android)
重新编译一下游戏Android项目, 至此, 移动MM SDK的接入就完成了. 如果有疏漏或者其他问题, 欢迎留言.
cocos2d-x 移动MM平台SDK接入相关推荐
- 小米开发者平台SDK接入
1. 创建项目 2.在Activity中添加两个按钮,"登录"和"充值" 3.在AndroidManifest.xml中添加如下权限 <!-- 这 ...
- java系统对接方案_阿里巴巴开放平台SDK(java版). 接入授权店铺数据,对接企业内部管理系统的解决方案...
AlibabaSDK-java 阿里巴巴开放平台SDK. 接入授权店铺数据,对接企业内部管理系统的解决方案 获取授权链接 @Test public void testGetPreAuthUrl() t ...
- EasyCVR添加萤石云SDK接入的设计与开发流程
我们在前期的文章中介绍过关于EasyCVR近期新增了多个功能,包括SDK接入方式的拓展.经过一段时间的设计.开发与测试,EasyCVR平台已经支持稳定接入华为SDK.宇视SDK.乐橙SDK.萤石SDK ...
- EasyCVR平台基于萤石云SDK接入的设备播放流程及接口调用
EasyCVR视频融合云服务支持海量视频汇聚与管理.处理与分发.智能分析等视频能力,在功能上,可支持视频监控直播.云端录像.云存储.录像检索与回看.智能告警.平台级联.服务器集群等.EasyCVR平台 ...
- 快速搭建直播平台教程,美颜SDK接入实现多种美颜特效
想要快速搭建直播平台,最快的办法就是使用成品直播源码直接搭建直播平台,而在搭建过程中,美颜功能是必不可少的. 如上图所示,直播平台中使用的美颜主要有四大功能,分别是贴纸.美颜.特效和哈哈镜: 1.贴纸 ...
- AI视频融合平台EasyCVR现已支持华为宇视等四种SDK接入
EasyCVR视频融合平台支持海量视频的汇聚与管理.转码与分发.鉴权管理.智能分析等,平台融合性强.兼容度高,可支持多协议.多设备接入,包括国标GB28181.RTMP.RTSP/Onvif.海康SD ...
- 视频融合云服务EasyCVR平台如何通过华为SDK接入实现云台控制?
EasyCVR是我们接入协议最广泛的视频管理平台,除了标准协议GB28181.RTSP/Onvif.RTMP等,还支持厂家的私有协议与SDK,如海康Ehome.海康SDK.大华SDK等,同时我们也还在 ...
- 短视频直播平台第三方特效SDK接入教程(完整版)
近些年,随着网络视频直播行业的兴起,Faceu激萌.抖音短视频受到了用户极度的追捧,整个行业的用户市场与发展前景都非常不错,已成为时下最热门的话题,大部分企业希望在自己的移动应用上添加类似Faceu. ...
- esp32,基于阿里云平台,配置实现Node.js SDK接入示例出现description: ‘Failed to authenticate: 4‘ BUG
项目场景: 需要esp32板子一块,一个wifi热点,最好是自己手机的 问题描述 当你配置好阿里云官方文档所需要的信息后,出现报错:description: 'Failed to authentica ...
- 微博Android平台SDK文档
博Android平台SDK文档 编号:WEIBO_ANDROID_SDK 版本:WEIBO_ANDROID_SDK V3.1.2 修订记录: 时间 文档版本 修订人 备注 2012/7/20 2.0. ...
最新文章
- CVPR 2020 Oral | 旷视提出Circle Loss,革新深度特征学习范式
- Spring 定时任务之 @Scheduled cron表达式
- GitHub开源新命令行工具:在终端里创建、管理PR成现实
- 关于IsolatedStorageFile存取文件的问题
- 已解决:Unable to register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed:
- inotify 文件系统监控
- list mybatis批量保存_mybatis 批量将list数据插入到数据库的实现
- 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导
- 史上最能“拜客户教”的公司,是如何做到持续交付的?(第2趴)|DevOps案例研究...
- python学习笔记全过程_Python学习笔记一(Hello World)
- 如何找素材,设计师必备技能
- 如何免费下载网页中的文档
- 【建议收藏】产品经理面试题合集
- 【北亚数据恢复】raid6磁盘阵列硬盘故障掉线导致上层虚拟机数据丢失的数据恢复案例
- L1-054 福到了 (15 分)
- win10安装并配置node.js
- 照片秒变艺术肖像画,Github标星5.2K!
- 万能码不可能中创造可能(安全扫码专业委员会)
- IDA静态动态逆向分析基础
- MCS-51单片机存储器结构-特殊功能寄存器 :堆栈指针SP(Stack Pointer)
热门文章
- db_recovery_file_dest与log_archive_dest、log_archive_dest_n
- buuctf XCTF October 2019 Twice SQL Injection 二次注入原理+题解
- 脸上不同部位长痘痘的原因
- Flash XSS 漏洞实例
- 中国互联网界有哪些风险投资、天使投资?
- 【毕业设计】单片机智能快递柜系统 - stm32 嵌入式 物联网
- 史上最纯净的Win7专业版系统
- MQTT Qos详解(一)
- ado全称_JDBC、ODBC、OLE DB、ADO、ADOMD区别与联系
- 〖Python零基础入门篇③〗- Pycharm编辑器不能复制粘贴怎么办?