最近,我们的Android应用程序开始崩溃,原因是一个名为com.walkfreestub
的包中出现了NullPointerException
。目前在网上没有任何关于这个问题的参考(我们尝试过所有与崩溃相关的搜索)。如果有关于这个包或可能原因的任何信息,那将是非常棒的。我们最好的猜测是,有人反编译了我们的APK,并修改了原始代码,以便在非官方应用商店中重新发布它。
值得注意的是,这种情况在印度和尼日利亚最常见,而且经常发生在Xiaomi 2014818设备上(但这可能只是这些国家/地区中常见的设备)。版本主要是Android 4.2和4.4,但也有一些崩溃发生在5.1和其他版本上。
更新:
现在有几个论坛上的用户抱怨与com.walkfree
和com.walkfreestub
相关的恶意软件。请参见此处,此处和此处的链接。不幸的是,这证实了我们的假设,即APK确实已经被恶意软件修改并在非官方应用商店中发布。
完整堆栈跟踪信息:
java.lang.NullPointerException: replacement == null
at java.lang.String.replace(String.java:1348)
at com.walkfreestub.trace.ReferrerTrack.checkTrackUrl(ReferrerTrack.java:158)
at com.walkfreestub.internal.PushServiceProxy.startDownloadApp(PushServiceProxy.java:454)
at com.walkfreestub.internal.PushServiceProxy.notifyToDownload(PushServiceProxy.java:239)
at com.walkfreestub.internal.PushServiceProxy.notifyMessage(PushServiceProxy.java:274)
at com.walkfreestub.internal.PushServiceProxy.onMessageLoaded(PushServiceProxy.java:342)
at com.walkfreestub.internal.push.WalkPushRequest$6.onResponse(WalkPushRequest.java:375)
at com.walkfreestub.internal.push.WalkPushRequest$6.onResponse(WalkPushRequest.java:1)
at com.walkfreestub.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
at com.walkfreestub.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:1)
at com.walkfreestub.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5136)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:740)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
at dalvik.system.NativeStart.main(Native Method)
...volley.Response.Listener
,所以会被调用.internal.
类从那个代码库中排除。 - weston