Crashlytics崩溃报告提到XposedBridge

时间:2019-05-20 18:35:55

标签: android android-intent crashlytics oncreate xposed

我昨天发布了一个Android应用程序的更新,今天我在Crashlytics中看到一些崩溃日志:

   Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.MyWebViewActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
          at android.app.ActivityThread.-wrap12(ActivityThread.java)
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
          at android.os.Handler.dispatchMessage(Handler.java:102)
          at android.os.Looper.loop(Looper.java:154)
          at android.app.ActivityThread.main(ActivityThread.java:6119)
          at java.lang.reflect.Method.invoke(Method.java)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
          at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

   Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
          at com.example.myapp.MyWebViewActivity.onCreate(MyWebViewActivity.java:77)
          at android.app.Activity.performCreate(Activity.java:6679)
          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
          at android.app.ActivityThread.-wrap12(ActivityThread.java)
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
          at android.os.Handler.dispatchMessage(Handler.java:102)
          at android.os.Looper.loop(Looper.java:154)
          at android.app.ActivityThread.main(ActivityThread.java:6119)
          at java.lang.reflect.Method.invoke(Method.java)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
          at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107) 

此报告的底部提到XposedBridge,我觉得有点奇怪。这是因为有人使用Xposed框架对我的应用进行了实验吗?还是“普通用户”会发生这种情况? Crashlytics表示,该问题迄今已影响3位用户,但我对此持怀疑态度,因为他们的手机型号和Android版本(Motorola Nexus 6,Android 7.1.1)完全相同,并且彼此之间的间隔不到10分钟。

NPE是由getIntent().getStringExtra("some_string").equals("another_string")通过onCreate方法引起的,即使我在创建此活动的所有位置都设置了“ some_string”。

所以我想知道的是,这种崩溃是否可能是除尝试Xposed的用户以外的其他原因造成的?即我应该认真对待吗?

1 个答案:

答案 0 :(得分:0)

通常,堆栈跟踪中有XposedBridge只是意味着该应用程序在装有XPosed的设备上运行。即使您的应用程序没有被任何XPosed模块修改,XPosed也会在整个Dalvik VM系统上进行更改。

我对Crashlytics经验不足,但是我将“ 3位用户”解释为一位用户两次清除了应用程序数据。

无论如何,我将始终使用安全的编码,因此您可以拨打电话

getIntent().getStringExtra("some_string").equals("another_string")

应改为:

"another_string".equals(getIntent().getStringExtra("some_string"))

这种方式可能有点陌生,但是如果当前的Intent没有“ some_string”值,则可以避免NullPointerException。