cocos2d-x 调用AlertDialog.Builder报错的解决方案

来源:互联网 发布:懒人眼镜 淘宝 编辑:程序博客网 时间:2024/05/17 06:13

在cocos2d-x游戏接入android sdk的时候,有些会使用这样的方式进行调试。

 

在Cocos2dxActivity.java中

 

import android.app.AlertDialog.Builder;

 

Cocos2dxActivity sContext 在oncreate中被初始化

 

在支付结果中:

 

Builder dialog = new Builder(sContext);

dialog.setTitle("支付SDK测试");
dialog.setMessage("道具复活支付成功");
dialog.show();

 

这样在运行到 show() 方法时,就会出现一下错误:

 

 

解决方法是把 show() 方法写在 Cocos2dxActivity 这个线程中

在 Cocos2dxActivity.java 中定义一个方法用来返回Activity

 

public static Activity getActivity()
{
    return sContext;
}

 

把 show() 方法放在以下代码中

getActivity().runOnUiThread(new Runnable()
{
    public void run()
    {
        dialog.show();
    }
});

 

就可以正常运行了

0 0