问题起因,UE4.27打包为AAR方式集成到安卓工程,UE引擎初始化后,渲染线程回调了一次OnEndFrameRT,GameThread未执行AppEventManager::Tick,判断游戏线程卡住了,期望有一个引擎重启机制,可以重启UE线程和重新加载资源(只重启AAR和重新加载obb,而无需重启整个APK)
重现步骤
您好,这种情况需要杀掉Game线程, 但这个是非常危险的操作,因为game线程还要负责和其他线程的同步,单单杀掉一个线程可能无法解决这个问题。
安卓只提供了System.LoadLibrary方法,没有unload。我不确定是否可行,但可以试一下加一个中间层,由这个中间层动态加载 libUnreal.so/libUE4.so,同时提供一个unload方法暴露给java,其内部执行动态卸载 libUnreal.so/libUE4.so