最近有个需求,是在原生的Android工程里面植入cocos游戏,我是把cocos游戏构建成一个Android工程,以依赖库的形式供Android原生工程调用,遇到如下问题:
环境:cocosCreator2.4.3
androidStudio:4.1.2
问题1.安卓Activity跳转到AppActivity,直接跳转失败:
该问题是因为如果AppActivity不是根Activity的话,引擎里面直接做了拦截,只要搜索“isTaskRoot”把相关的拦截全注释掉,就OK了:
问题2:解决完上面的问题后,又一个问题,我从Android工程的MainActivity跳转到cocos的AppActivity 时,第一次成功,返回,在跳转过去,失败,第三次成功,返回再跳转又失败,如此反复,复现率100%。异常日志如下:
在百度和cocos论坛查了下,都没有找到解决答案,但是在官方论坛里,子龙山人大佬的回复说引擎不支持Activity的生命周期函数被多次调用:
再结合我一个前同事的提示,我试一下,在cocos的AppActivity返回回调里做了下拦截,直接改成启动Android工程的MainActivity,然后把MainActivity和AppActivity的启动模式都改成singleTask,防止AppActivity被finish,再编译运行一下,结果可以正常反复跳转了。
贴出相关问题的论坛路径(再次感谢):
https://forum.cocos.org/t/android-crash/57455/3