在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();
}
});
就可以正常运行了