1.6.1 引擎报错debug信息 已修复.感谢dumganhar大大!

代码没改过 在1.5.2 一直没问题 js也能try catch?
如果是代码逻辑错误 那么这个应该是必现 现在是 少数玩家偶发性的 重开app就恢复正常
@panda 大大 @jare 大大 来看看

安装app后 点击微信登陆 切换出去,然后再点游戏图标,切回有游戏后,卡住了 声音和触摸都没有了 说明还没resumed.
强关一次app之后 都正常 只发生新装然后切换出去.然后点击桌面图标进入.

09-07 23:26:57.693 21225-21225/? E/ActivityThread: Performing stop of activity that is not resumed: {com..mj/org.cocos2dx.javascript.AppActivity}
java.lang.RuntimeException: Performing stop of activity that is not resumed: {com.
.mj/org.cocos2dx.javascript.AppActivity}
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3704)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3804)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1513)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5816)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)

为啥切回游戏的时候会卡住,主要问题是这个吧,解决了这个问题,自然就不会出现那个报错了

并不是卡住 而是Activity没有resumed 还处在后台模式 这个就是引擎侧的报错 并不是js

这个是android底层的一个bug,可以查阅一下
https://stackoverflow.com/questions/16283079/re-launch-of-activity-on-home-button-but-only-the-first-time/16447508#16447508

这里面有对应的workaround。

理论上1.5.2页会出现的,你先尝试用那个帖子的workaround,看看1.6.1是否还有问题。

尝试这样改一下再试试:
https://github.com/cocos2d/cocos2d-x/pull/18247

1赞

@dumganhar 这个修复还是有问题.会导致微信登陆之后回调的对象不对还是什么 会进入黑屏页面.

09-11 08:39:58.141 17044-17073/com..mj D/cocos2d-x debug info: cc.audioEngine.pauseAll
09-11 08:39:58.801 17044-17044/com.
.mj V/MicroMsg.SDK.WXApiImplV10.ActivityLifecycleCb: WXStat trigger onBackground
09-11 08:40:14.101 17044-17044/com..mj W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection
09-11 08:40:18.481 512-7926/system_process I/ActivityManager: START u0 {flg=0x18000000 cmp=com.
.mj/.wxapi.WXEntryActivity (has extras)} from pid 17494
09-11 08:40:18.891 17044-17044/com..mj D/MicroMsg.PaySdk.WXFactory: createWXAPI, appId = wxa8b4550d6596cc69, checkSignature = false
09-11 08:40:18.891 17044-17044/com.
.mj D/MicroMsg.SDK.WXApiImplV10: , appId = wxa8b4550d6596cc69, checkSignature = false

09-11 08:40:18.901 17044-17044/com..mj I/MicroMsg.SDK.WXApiImplV10: handleIntent, cmd = 1
09-11 08:40:18.931 17044-17044/com.
.mj E/MicroMsg.SDK.WXApiImplV10: handleIntent fail, ex = null

09-11 08:40:18.931 17044-17044/com..mj V/MicroMsg.SDK.WXApiImplV10.ActivityLifecycleCb: com..mj.wxapi.WXEntryActivity onActivityResumed
09-11 08:40:19.081 512-526/system_process I/ActivityManager: Displayed com..mj/.wxapi.WXEntryActivity: +436ms
09-11 08:40:19.731 17044-17044/com.
.mj V/MicroMsg.SDK.WXApiImplV10.ActivityLifecycleCb: WXStat trigger onForeground

试试在AndroidManifest.xml中加入:
android:launchMode=“singleInstance”

还是一样的.之前的版本没有这个问题,感觉还要想想别的办法.
@dumganhar

能剥离一下游戏逻辑,整理一个带微信登录的小demo发给我么?这样我这里好查一下具体是啥问题。

把微信回调放在cocos线程执行,AppActivity.getInstance().runOnGLThread

以前建议过Cocos2dxJavascriptJavaBridge.evalString内部去强制在GL线程执行,被否决了.

不是吧。还有这个坑。。。

@epenli,试试在回调给c++层的时候,调用一下Cocos2dxActivity的runOnGLThread方法,然后在runnable的run方法中调用 Cocos2dxJavascriptJavaBridge.evalString。

给我个邮箱 我单独发你 @dumganhar

jianhua.chen@cocos2d-x.org

用你的demo,微信登陆无法成功:日志:
09-13 10:18:28.986 15215-15249/com.yinghui.mj D/cocos2d-x debug info: ====== onHandler wxErrorCode ====== Code:-6
09-13 10:18:28.986 15215-15249/com.yinghui.mj E/wxErrorCode: -6

回你邮件了 大神.

两个地方加上这个代码就可以了.@panda 标记为解决方案吧