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 := casdkjni

LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcasdkjni.so

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := identifyapp

LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libidentifyapp.so

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

MYSRC_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)/../../Classes

LOCAL_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_static

LOCAL_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的接入就完成了. 如果有疏漏或者其他问题, 欢迎留言.
 
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值