当前位置:   article > 正文

Android 集成Unity工程出现的崩溃问题_flutter-unity-widget android崩溃

flutter-unity-widget android崩溃

最近在做一个项目是把Unity的工程集成到AndroidProject中,实现的逻辑就是主程序调用Unity程序 , Unity程序之行结束后然后调用主程序的方法并把相应参数返回回来 , 在IOS上没有任何问题 , 但是在安卓上总是会出现主程序返回主页的时候应用就崩溃重启了 , 爬了很多教程都没有解决 , 把代码重新刷了好几遍都没有解决 , 郁闷了两天 !! 后来找到一篇文章提醒了 . 找到了问题所在 ,这里做个记录防止道友们再次入坑! 

参考链接 : http://blog.csdn.net/github_2011/article/details/57084556

其实问题很简单 , 就是安卓在调用"返回主页"的时候会调用 onDestroy函数 , 其中有一个方法是mUnityPlayer.quit();

  1. @Override
  2. protected void onDestroy() {
  3. super.onDestroy();
  4. mUnityPlayer.quit();
  5. }
  1. public void quit() {
  2. this.v.a();
  3. this.o = true;
  4. if(!this.e.e()) {
  5. this.pause();
  6. }
  7. this.unloadGoogleVR();
  8. this.a.a();
  9. try {
  10. this.a.join(4000L);
  11. } catch (InterruptedException var1) {
  12. this.a.interrupt();
  13. }
  14. if(this.g != null) {
  15. this.l.unregisterReceiver(this.g);
  16. }
  17. this.g = null;
  18. if(k.c()) {
  19. this.removeAllViews();
  20. }
  21. this.kill();
  22. g();
  23. }

问题就出现在这个quit();上 , Ctrl+B 跳转父类方法定义 , 会看到kill();方法

? , 就是kill();方法杀死了安卓的进程导致应用重启了, 找到原因了解决就简单了 , 在安卓中为Untiy单独开启一个进程, 这样回收只会回收Unity进程,而不会回收原本android进程 . 
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/82890
推荐阅读
相关标签
  

闽ICP备14008679号