標籤:
新做的cocos2d-x-3.3版本的Android工程,接入付費sdk時,想讓遊戲開始的時候執行sdk的初始化,可惜開啟主AppActivity.java, 沒有提供一個方法。
解決辦法:
可以重寫父類Cocos2dxActivity的init()方法;如:
public void init(){
super.init();
//在這裡寫遊戲開始的時候要執行的方法
}
接下來想在支付的時候在靜態方法中調用的Toast,報錯。。。
解決辦法:
在主Activity的init()方法中初始化一個Handler對象,如:
public static android.os.Handler dialogHandler = null;
public static AppActivity activity;
public void Init()
{
super.init();
dialogHandler = new android.os.Handler();
activity = this;
}
public static void showToastDialog( final String text )
{
dialogHandler.post(new Runnable(){
public void run() {
// TODO Auto-generated method stub
Toast.makeText(activity, text , Toast.LENGTH_SHORT).show();
}
});
}
然後在別的地方調用AppActivity.showToastDialog("Toast顯示");問題解決。
接下來又遇到一個問題:當付費成功後,調用static方法給遊戲返回支付結果時,出現卡死的狀態。。。
解決辦法:
public static void PayFinish(){
Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable(){
public void run() {
// 這裡調用傳入遊戲支付結果的static方法
}
});
}
cocos2d-x-3.3Android工程接入sdk時遇到的問題