客户apk 支持双屏异显,副屏显示会有类似全屏的透明的dialog,在出现这个界面时系统就出现卡死
报错的log如下:
12-04 11:15:23.064 2142 3753 W System : ClassLoader referenced unknown path: /system/etc/posin/posindevice.apk
12-04 11:15:23.065 2142 3753 W System.err: android.content.pm.PackageManager$NameNotFoundException: Application package com.posin.device not found
12-04 11:15:23.065 2142 3753 W System.err: at android.app.ContextImpl.createPackageContextAsUser(ContextImpl.java:1850)
12-04 11:15:23.065 2142 3753 W System.err: at android.app.ContextImpl.createPackageContext(ContextImpl.java:1827)
12-04 11:15:23.065 2142 3753 W System.err: at android.content.ContextWrapper.createPackageContext(ContextWrapper.java:778)
12-04 11:15:23.065 2142 3753 W System.err: at com.posin.device.SDK.init(SDK.java:44)
12-04 11:15:23.065 2142 3753 W System.err: at com.posin.device.SDK.getInstance(SDK.java:122)
12-04 11:15:23.065 2142 3753 W System.err: at com.posin.device.Printer.newInstance(Printer.java:27)
12-04 11:15:23.065 2142 3753 W System.err: at com.liantuo.cashierdesk.util.PrintInstance.customPrintMessage(PrintInstance.java:207)
12-04 11:15:23.065 2142 3753 W System.err: at com.liantuo.cashierdesk.util.NetPrinterUtil.printFormat(NetPrinterUtil.java:509)
12-04 11:15:23.065 2142 3753 W System.err: at com.liantuo.cashierdesk.util.NetPrinterUtil.access$0(NetPrinterUtil.java:462)
12-04 11:15:23.065 2142 3753 W System.err: at com.liantuo.cashierdesk.util.NetPrinterUtil$1.run(NetPrinterUtil.java:130)
12-04 11:15:23.065 2142 3753 W System.err: at java.lang.Thread.run(Thread.java:761)
12-04 11:15:23.066 2142 3753 W System.err: java.lang.ClassNotFoundException: Didn’t find class “com.posin.device.SdkImpl” on path: DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]]
12-04 11:15:23.066 2142 3753 W System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
12-04 11:15:23.066 2142 3753 W System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
12-04 11:15:23.066 2142 3753 W System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
12
log显示是出现空指针异常,getDisplayInfo 为空,副屏获取不到display信息;异常可以抛出,但是获取的displaysize 会为0,所以需要在getBoundsForFullscreen 在getDisplayInfo 为空的时候设置displaysize值,并且是1.5倍的分辨率
+ if(info != null){
dw = (int) (info.logicalWidth * 1.5);
dh = (int) (info.logicalHeight * 1.5);
+ }else{
+ Log.e("lyl","nnnnnn");
+ dw = 2880;
+ dh = 1600;
另外,客户apk涉及到人脸支付,在人脸识别切换退出界面时,副屏logo页面退出太慢,会有短暂的页面重叠效果;这个问题不容易排查;暂时可以默认关闭开发者模式中的页面切换动画开关来解决。