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的接入就完成了. 如果有疏漏或者其他問題, 歡迎留言.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章