背景:
Android原生项目,突然有了要加3D展示交互的需求。而原生项目内部实现的模块和逻辑较多,不适合将Android打包放入unity,因此采用的Android原生嵌入unity。
问题描述:
Android嵌入unity的方法,可自行百度。成功嵌入后,有两三问题。
(1)未启动新进程前,杀掉activity后,整个app崩溃。
于是采用新进程的方法,并且重写kill函数。
参考: Android调用Unity,关闭Unity场景的一些问题
Android Unity3D 相互交互,及退出继承UnityPlayerActivity的Crash问题
(2)采用新进程,重写kill之后,还是有两个问题:
a、unity进程启动时,通信重启;找到问题原因是整个实例化,禁止实例化即可
b、unity进程关闭时,后台界面有3 、4 秒的时间是不可操作的,这种是太影响操作的。

重点就是问题b。
跟踪日志有这样一条:3399-3569/com.jucheng.platform E/Unity: java.net.UnknownHostException: Unable to resolve host "config.uca.cloud.unity3d.com": No address associated with hostname
猜测可能是跟unity内部上报云服务数据相关(原因是上报半天等待云返回,等待时间长并且是不可访问的)。想办法禁止unity上报,搜索后,找到该文章:How to disable Unity analytics?
核心方法有3个
1、移除analytics package :去package manager 窗口移除即可
2、确保 HW statistics disabled
project setting->player-> other setting-> configuration-> Disable HW Statistics* ,打对勾即可。
Android嵌入unity界面,崩溃及卸载activity后不可点击问题_第1张图片
3、在场景awake最早的地方,加入以下代码:

 void Awake()    {        UnityEngine.Analytics.Analytics.enabled = false;        UnityEngine.Analytics.Analytics.deviceStatsEnabled = false;        UnityEngine.Analytics.Analytics.initializeOnStartup = false;        UnityEngine.Analytics.Analytics.limitUserTracking = false;        UnityEngine.Analytics.PerformanceReporting.enabled = false;    }

最终,很快卸载的效果出现。unity不再analysis,也不再报 云的结果了。

更多相关文章

  1. WebView之js调用Android类的方法传递数据 - 依凡王子
  2. 进程和线程模型(android)
  3. android进程和线程模型
  4. 【Android】IPC(进程间通信)
  5. 〖Android〗简单隐藏Android虚拟键盘的方法

随机推荐

  1. Android Recovery UI浅析1——概览
  2. Android: HttpClient与Webview共享cookie
  3. QtAndroid详解(4):JNI调用Android系统功能
  4. Android应用无线测试要点
  5. 将android Market缓存转移到SD卡的小程序
  6. Android(安卓)LruCache内存缓存图片
  7. Android 缓存策略
  8. android SDK 环境搭建 离线
  9. Android中如何自己定义吐司(Toast)
  10. 使用Android(安卓)Ant在编译时混淆