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

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

09-08 11:23:54.431 512-931/system_process I/MediaFocusControl: AudioFocus requestAudioFocus() from android.media.AudioManager@41ba10a0org.cocos2dx.lib.Cocos2dxAudioFocusManager$1@41abbe80
09-08 11:23:54.591 20857-20857/com..mj D/Cocos2dxActivity: onWindowFocusChanged() hasFocus=true
09-08 11:23:54.621 512-526/system_process I/ActivityManager: Displayed com.
.mj/org.cocos2dx.javascript.AppActivity: +228ms (total +9s367ms)
09-08 11:23:57.471 107-107/? I/DEBUG: #00 pc 006b20c4 /data/app-lib/com..mj-1/libcocos2djs.so
09-08 11:23:57.471 107-107/? I/DEBUG: #01 pc 006b20b8 /data/app-lib/com.
.mj-1/libcocos2djs.so
09-08 11:23:57.471 107-107/? I/DEBUG: 6d8e2884 6b726fa0 /data/app-lib/com..mj-1/libcocos2djs.so
09-08 11:23:57.481 107-107/? I/DEBUG: 6d8e28d4 6c29b950 /data/app-lib/com.
.mj-1/libcocos2djs.so
09-08 11:23:57.481 107-107/? I/DEBUG: 6d8e28e4 6b749720 /data/app-lib/com..mj-1/libcocos2djs.so
09-08 11:23:58.091 512-21589/system_process W/ActivityManager: Force finishing activity com.
.mj/org.cocos2dx.javascript.AppActivity
09-08 11:23:58.111 512-541/system_process W/InputDispatcher: channel ‘421c58f0 com..mj/org.cocos2dx.javascript.AppActivity (server)’ ~ Consumer closed input channel or an error occurred. events=0x9
09-08 11:23:58.111 512-541/system_process E/InputDispatcher: channel '421c58f0 com.
.mj/org.cocos2dx.javascript.AppActivity (server)’ ~ Channel is unrecoverably broken and will be disposed!
09-08 11:23:58.121 512-541/system_process W/InputDispatcher: channel ‘42073b08 com..mj/org.cocos2dx.javascript.AppActivity (server)’ ~ Consumer closed input channel or an error occurred. events=0x9
09-08 11:23:58.121 512-541/system_process E/InputDispatcher: channel '42073b08 com.
.mj/org.cocos2dx.javascript.AppActivity (server)’ ~ Channel is unrecoverably broken and will be disposed!
09-08 11:23:58.251 512-7945/system_process W/InputDispatcher: Attempted to unregister already unregistered input channel ‘421c58f0 com..mj/org.cocos2dx.javascript.AppActivity (server)’
09-08 11:23:58.251 512-7945/system_process I/WindowState: WIN DEATH: Window{421c58f0 u0 com.
.mj/org.cocos2dx.javascript.AppActivity}
09-08 11:23:58.251 512-7945/system_process W/WindowManager: Force-removing child win Window{421e9670 u0 SurfaceView} from container Window{421c58f0 u0 com..mj/org.cocos2dx.javascript.AppActivity}
09-08 11:23:58.351 512-7926/system_process W/InputDispatcher: Attempted to unregister already unregistered input channel '42073b08 com.
.mj/org.cocos2dx.javascript.AppActivity (server)’
09-08 11:23:58.351 512-7926/system_process I/WindowState: WIN DEATH: Window{42073b08 u0 com..mj/org.cocos2dx.javascript.AppActivity}
09-08 11:23:58.351 512-7926/system_process W/WindowManager: Force-removing child win Window{42102f88 u0 SurfaceView} from container Window{42073b08 u0 com.
.mj/org.cocos2dx.javascript.AppActivity}
09-08 11:23:58.401 512-21589/system_process I/ActivityManager: Restarting because process died: ActivityRecord{421bdd78 u0 com..mj/org.cocos2dx.javascript.AppActivity t63}
09-08 11:23:58.401 512-21589/system_process W/ActivityManager: Exception when starting activity com.
.mj/org.cocos2dx.javascript.AppActivity
android.os.DeadObjectException
at android.os.BinderProxy.transact(Native Method)
at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:750)
at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:967)
at com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStackSupervisor.java:1063)
at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1625)
at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1258)
at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:815)
at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2455)
at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2332)
at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2050)
at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:9595)
at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:9488)
at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:10133)
at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9684)
at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
09-08 11:23:58.421 512-21589/system_process I/ActivityManager: Start proc com…mj for activity com…mj/org.cocos2dx.javascript.AppActivity: pid=21610 uid=10131 gids={50131, 3003, 1028, 1015}
09-08 11:23:58.571 21610-21610/? D/dalvikvm: Trying to load lib /data/app-lib/com..mj-1/libcocos2djs.so 0x41a5cbe0
09-08 11:23:58.621 21610-21610/? D/dalvikvm: Added shared lib /data/app-lib/com.
.mj-1/libcocos2djs.so 0x41a5cbe0
09-08 11:23:58.621 21610-21610/? D/main: cocos_android_app_init

这个Bug我报过,确实存在。

@jare @panda 求救 线上项目 运行中 不少玩家反馈

是纯app还是webView

必须是app 安卓端 苹果没这个问题

你这个问题还有一个情况,是你的脚本出错了,特别是在start,onLoad,onEnable等中的脚本出错,一定是会死循环的,以前反馈过,但目前引擎不会改这个,出了死循环当然就卡死了

要避免这个,你可以在每个脚本都加try catch.又或者打LOG出来,自己找出错在哪里.

脚本注意一下执行顺序,没有addChild的时候不会执行onLoad函数

代码没改过 在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