您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx android 爱贝支付平台接入记录

2015-02-27 10:26 323 查看
问题:

今天在接入爱贝支付平台的时候,出现一个错误:

01-28 18:00:05.614: E/AndroidRuntime(25801): FATAL EXCEPTION: GLThread 5466

01-28 18:00:05.614: E/AndroidRuntime(25801): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

01-28 18:00:05.614: E/AndroidRuntime(25801): at android.os.Handler.<init>(Handler.java:121)

01-28 18:00:05.614: E/AndroidRuntime(25801): at android.app.Dialog.<init>(Dialog.java:142)

01-28 18:00:05.614: E/AndroidRuntime(25801): at android.app.AlertDialog.<init>(AlertDialog.java:114)

01-28 18:00:05.614: E/AndroidRuntime(25801): at android.app.AlertDialog.<init>(AlertDialog.java:110)

01-28 18:00:05.614: E/AndroidRuntime(25801): at android.app.ProgressDialog.<init>(ProgressDialog.java:96)

01-28 18:00:05.614: E/AndroidRuntime(25801): at com.iapppay.ui.widget.IPayLoadingDialog.<init>(Unknown Source)

01-28 18:00:05.614: E/AndroidRuntime(25801): at com.iapppay.sdk.main.SDKMain.showPrograssBar(Unknown Source)

01-28 18:00:05.614: E/AndroidRuntime(25801): at com.iapppay.sdk.main.SDKMain.begSession(Unknown Source)

01-28 18:00:05.614: E/AndroidRuntime(25801): at com.iapppay.sdk.main.SDKMain.onPreCallPayHub(Unknown Source)

01-28 18:00:05.614: E/AndroidRuntime(25801): at com.iapppay.sdk.main.IAppPay.startPay(Unknown Source)

01-28 18:00:05.614: E/AndroidRuntime(25801): at com.zssbd.zjd.IZhiAppPay.startPayhub(IZhiAppPay.java:39)

01-28 18:00:05.614: E/AndroidRuntime(25801): at org.cocos2dx.lib.Cocos2dxRenderer.nativeRender(Native Method)

01-28 18:00:05.614: E/AndroidRuntime(25801): at org.cocos2dx.lib.Cocos2dxRenderer.onDrawFrame(Cocos2dxRenderer.java:94)

01-28 18:00:05.614: E/AndroidRuntime(25801): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1516)

01-28 18:00:05.614: E/AndroidRuntime(25801): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

解决:
这是因为在cocos2dx opengl线程中调用android UI主线程的东西,解决方法:

new Handler(Looper.getMainLooper()).post(new Runnable() {

@Override

public void run() {

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: