首页 > 代码库 > cocos2d-x-3.3Android工程接入sdk时遇到的问题
cocos2d-x-3.3Android工程接入sdk时遇到的问题
新做的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时遇到的问题