cocos2d-x 移动MM平台SDK接入
生活随笔
收集整理的這篇文章主要介紹了
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接入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用scrapy中的ItemLoad
- 下一篇: zookeeper羊群效应