问题发生的环境
软件环境:Unity5.3.4f1
设备环境:华为平板BTV-W09 系统版本号EMUI系统4.1 Android版本6.0
发生过程
步骤1:原本工程里有监控软键盘打开收起的功能。见代码一。
步骤2:添加显示状态栏功能后部分设备上回发生奔溃。Unity设置Android状态栏状态代码见ApplicationChrome.cs
代码一,Android端监控软键盘状态代码片段:
this.m_context.getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
{
public void onGlobalLayout()
{
Rect r = new Rect();
MogoViewableArea.this.m_context.getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
}
});
错误日志
W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.huawei.lcagent.client.LogCollectManager.getUserType()' on a null object reference
W/System.err: at com.android.server.util.ReportTools.getUserType(ReportTools.java:86)
W/System.err: at com.android.server.util.ReportTools.isBetaUser(ReportTools.java:73)
W/System.err: at com.android.server.util.ReportTools.report(ReportTools.java:58)
W/System.err: at com.android.server.util.HwUserBehaviourRecord.appExitRecordInnerImpl(HwUserBehaviourRecord.java:125)
W/System.err: at com.android.server.util.HwUserBehaviourRecord.access$200(HwUserBehaviourRecord.java:32)
W/System.err: at com.android.server.util.HwUserBehaviourRecord$AsyUploadLooperThread$1.handleMessage(HwUserBehaviourRecord.java:255)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err: at android.os.Looper.loop(Looper.java:150)
W/System.err: at com.android.server.util.HwUserBehaviourRecord$AsyUploadLooperThread.run(HwUserBehaviourRecord.java:267)
处理结果
暂时屏蔽了监控软键盘功能,后期再深入研究。
结尾
在多个品牌测试机的测试结果中只有此一款华为平板出现问题。另附一款华为平板设备信息,此设备可以正常运行。
型号FDR-A01W 系统版本号EMUI系统3.1 Android版本5.1.1