lamster2018 / EasyProtector

一行代码检测XP/调试/多开/模拟器/root
Apache License 2.0
2.2k stars 442 forks source link

空指针错误(Attempt to invoke interface method 'void com.lahm.library.VirtualCheckCallback.findSuspect()' on a null object reference)) #23

Closed Harreke closed 5 years ago

Harreke commented 5 years ago

image 突然产生了大量空指针问题,貌似都是发生在按back键退出app的时候发生的 崩溃率很大,可否尽快加入非空判断?

是在Application初始化时调用的,具体kotlin代码如下:

if (ProcessUtil.isMainProcess(application)) { VirtualApkCheckUtil.getSingleInstance().checkByPortListening(application.packageName) { Log.e("Application", "find multiapp suspect") DeviceInfo = generateDeviceInfo(application, true) } }

lamster2018 commented 5 years ago

我代码逻辑里有一段, 检测后会把listener置空的操作

Harreke commented 5 years ago

在调用listener的findSuspect()之前,是否可以先进行一次非空判断? 因为可能存在这样一种情况,就是使用软件进行多开,先启动App(记为A1),再多开(记为A2),A1或者A2检测到多开后,就把listener清空了;这时候再进行一次多开,那么A1、A2就有可能再次尝试调用findSuspect()回调而遇到而发生空指针错误

lamster2018 commented 5 years ago

『先启动App(记为A1),再多开(记为A2),A1或者A2检测到多开后,就把listener清空了』----这一步没问题

『这时候再进行一次多开,那么A1、A2就有可能再次尝试调用findSuspect()回调而遇到而发生空指针错误』----如果还进行多开,那不就正好空指针崩溃么?

这样吧,我这几天把逻辑改一下,把callback全部交给开发者自己处理,我不清空了。