首页 > 代码库 > 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时遇到的问题