Crashlytics crash report mentions XposedBridge - android

I released an update to an Android app yesterday, and today I am seeing a few crash logs in 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)
At the bottom this report mentions XposedBridge, which I find kind of odd. Is this caused by someone experimenting with my app using the Xposed framework? Or could this happen to a "normal user"? Crashlytics says the issue has affected 3 users so far, but I'm skeptical since they all have the exact same phone model and Android version (Motorola Nexus 6, Android 7.1.1) and happened within 10 minutes of each other.
The NPE is caused by getIntent().getStringExtra("some_string").equals("another_string") in an onCreate method, even though I am setting the "some_string" in all places where I'm creating this activity.
So what I'm wondering is if this sort of crash could be the result of anything other than a user who is experimenting with Xposed? I.e. should I take it seriously or not?

In general having the XposedBridge in the stack trace just means that the app runs on an device with XPosed installed. XPosed changes the Dalvik VM system wide, even if your app isn't modified by any XPosed module.
I don't have much experience with Crashlytics, however the "3 users" I would interpret as one user having cleared the app data two times.
Anyway I would always use safe coding, therefore your call
getIntent().getStringExtra("some_string").equals("another_string")
should be reformulated to:
"another_string".equals(getIntent().getStringExtra("some_string"))
This way is may be a bit unfamiliar to read, but it is safe against NullPointerException in case the current Intent does not has the "some_string" value.

Related

NPE on com.android.server.autofill.RemoteFillService$PendingRequest.cancel()

Crashlytics is reporting NullPointerException related to Auto Fill as shown below:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method
'boolean com.android.server.autofill.RemoteFillService$PendingRequest.cancel()' on a null object reference
at android.os.Parcel.readException(Parcel.java:1965)
at android.os.Parcel.readException(Parcel.java:1905)
at android.app.IActivityManager$Stub$Proxy.reportAssistContextExtras(IActivityManager.java:8297)
at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3210)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by android.os.RemoteException: Remote stack trace:
at com.android.server.autofill.RemoteFillService.cancelCurrentRequest(RemoteFillService.java:177)
at com.android.server.autofill.Session.cancelCurrentRequestLocked(Session.java:465)
at com.android.server.autofill.Session.access$1000(Session.java:118)
at com.android.server.autofill.Session$1.onHandleAssistData(Session.java:322)
at com.android.server.am.ActivityManagerService.reportAssistContextExtras(ActivityManagerService.java:14713)
However, the stack does not include anything from my app yet crash is happening on my side.
This is not an issue with your app but with specific Android OEMs. Seems to be happening more frequently on Samsung Devices and not seen on Pixel Devices. Here is an issue report to Google which is closed as 'Won't Fix'.
https://issuetracker.google.com/issues/123311621
Since the crash is happening because of autofill. I would recommend disabling autofill for the specific view by setting importanForAutofill as false/no.
https://developer.android.com/reference/android/R.attr.html#importantForAutofill

NullPointer on toLowerCase but I don't use that method anywhere

I'm getting the following crash dump in Firebase Crash Reports:
Exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference
bnp.run (bnp.java:56)
java.lang.Thread.run (Thread.java:818)
The problem is that I don't use the String.toLowerCase() method anywhere in the project. In Android Studio, I did Edit->Find In Path for the method and got no results, however, it does appear 100+ times if I search in the libraries. But I cannot find the "bnp.java" anywhere.
Thanks for your help!
Edit: A previous crash report was not proguard-affected and revealed it may be due to google-play-services or Firebase. I only use gms:play-services-places and gms:play-services-auth in my app, along with many Firebase dependencies.
Exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference
bnp.run (:com.google.android.gms.DynamiteModulesC:56)
java.lang.Thread.run (Thread.java:818)
I can't comment yet, so I will post this as a possible solution, but this seems like an error on Google's side. Multiple people are reporting this crash on the exact same device with the exact same region. So it seems Google runs your app on a virtual or automated device and then that device crashes. This device seems to be a Nexus 5x with local us-US and API level 23.
Source: https://code.google.com/p/android/issues/detail?id=233549
I got this error when my code was trying to create a connection to certain amqp service using an invalid URL. Once I modified it to the proper value, the exception is gone. So check your code.
My app ran into a similar issue.
When launched in Stock android devices(Mi A1), the App crashed with " keeps stopping popup". The Crashlytics in Fabric reported it as the
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference
at bfx.run(:com.google.android.gms.dynamite_dynamitemodulesc#13452060#13.4.52 (040708-202483333):80)
at java.lang.Thread.run(Thread.java:818)
But when I checked the Pre-launch report of the Release management in Google Play Console, it showed that the app was crashing for Pixel & Pixel 2 for an entirely different reason. The issue shown was
FATAL EXCEPTION: main Process: in.quickall.quickall, PID: 8345
java.lang.RuntimeException: Unable to start activity ComponentInfo{in.quickall.quickall/in.quickall.quickall.Main.MainActivity}: android.content.res.Resources$NotFoundException: Drawable in.quickall.quickall:drawable/splash_screen with resource ID #0x7f0700c0
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
And the issue started from the APK version were I implemented the code (given below) to remove the white screen on launch.
<style name="SplashTheme" parent="AppTheme">
<item name="android:windowBackground">#drawable/splash_screen</item>
</style>
I removed this piece of code and now the Pre-launch report shows it as working fine in the Pixel devices.
Now the app launches correctly, but has to have the white screen at launch.

NULL pointer error in production only on first start

I currently have an issue when I deploy my Titanium alloy application to the play store, when I launch it for the first time it crashes. This only happens in production.
When I reported the issue the following is what I found in the developer console:
java.lang.NullPointerException: Attempt to invoke virtual method
'android.content.res.Resources android.content.Context.getResources()'
on a null object reference at
android.view.ViewConfiguration.get(ViewConfiguration.java:359) at
android.view.View.(View.java:3663) at
android.view.View.(View.java:3758) at
android.widget.TextView.(TextView.java:650) at
android.widget.TextView.(TextView.java:645) at
android.widget.TextView.(TextView.java:641) at
android.widget.TextView.(TextView.java:637) at
ti.modules.titanium.ui.widget.TiUILabel$1.(TiUILabel.java:58)
at ti.modules.titanium.ui.widget.TiUILabel.(TiUILabel.java:57)
at ti.modules.titanium.ui.LabelProxy.createView(LabelProxy.java:63)
at
org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:490)
at
org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:476)
at
org.appcelerator.titanium.proxy.TiViewProxy.handleToImage(TiViewProxy.java:965)
at
org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:280)
at android.os.Handler.dispatchMessage(Handler.java:98) at
android.os.Looper.loop(Looper.java:211) at
android.app.ActivityThread.main(ActivityThread.java:5373) at
java.lang.reflect.Method.invoke(Native Method) at
java.lang.reflect.Method.invoke(Method.java:372) at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
Since I don't know where excalty it went wrong since it is in production I don't know what code to supply. I understand it is a null reference error, but nowhere in my application I use a getResources() function, or something like that.
The second time I run it it just works
Titanium Version: 6.0.1.GA
Mac OS X: 10.12.3
Target android SDK: 23
Android version: 5.1
Any help would be appriciated!

App generating java.lang.NullPointerException when compiled on different developer machine

I have an application that compiles and runs fine when run on a machine X.
We check the code out compile and run it on machine Y and it generates a null pointer exception.
The Null pointer exception is listed below the main body.
I have investigated and the code is failing when a findViewById() call is executed on an edit text box.
The call has an id (integer) but returns a null in the place of the view.
We have tried cleaning and rebuilding the project but this does not seem to resolve the problem.
I believe the problem may some how be related to R.java identifiers being corrupted on the new install.
09-08 15:50:10.186 28278-28278/ca.client.crmlogon E/ACRA: ACRA caught a RuntimeException for ca.client.crmlogon
java.lang.RuntimeException: Unable to start activity ComponentInfo{ca.client.crmlogon/ca.client.crmlogon.Activities.WorkOrderActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2790)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2855)
at android.app.ActivityThread.access$900(ActivityThread.java:181)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6117)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null object reference
at ca.client.crmlogon.Activities.GUIFormActivity.hideFieldById(GUIFormActivity.java:690)
at ca.client.crmlogon.Activities.GUIFormActivity.hideFieldByName(GUIFormActivity.java:697)
at ca.client.crmlogon.Activities.WorkOrderActivity.hideAgreementSection(WorkOrderActivity.java:1604)
at ca.client.crmlogon.Activities.WorkOrderActivity.loadServiceAppointment(WorkOrderActivity.java:2026)
at ca.client.crmlogon.Activities.WorkOrderActivity.onCreate(WorkOrderActivity.java:515)
at android.app.Activity.performCreate(Activity.java:6374)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2743)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2855)�
at android.app.ActivityThread.access$900(ActivityThread.java:181)�
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474)�
at android.os.Handler.dispatchMessage(Handler.java:102)�
at android.os.Looper.loop(Looper.java:145)�
at android.app.ActivityThread.main(ActivityThread.java:6117)�
at java.lang.reflect.Method.invoke(Native Method)�
at java.lang.reflect.Method.invoke(Method.java:372)�
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)�
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
You may be missing some files. If you transfered it using Git, make sure all your files were added before your last commit/push.
If you transfered it over a USB stick, etc. you may have accidentally removed the device before the transfer was complete.
My first suggestion is to try the transfer again, making sure you didn't miss any files.

Android App NOT Running on Emulator, but on real device

Android Studio 2.1, Gradle 2.1.0
I've search similar problem here, but nothing found. Mostly related to, the emulator is good but not on real device.
The problem is, once the emulator is ready and the app is launched, the app suddenly crashed as I click on first activity. Then, I tried to run on real device and everything works as it should be.
1st. This issue is not the same as App running on emulator but not on
real device, it's backward with this one.
2nd. No errors in editor, just a little warning.
3rd. The logcats says; FATAL EXCEPTION: main.
What I've done;
1) Delete the current emulator only, without the system images.
2) Recreated the emulator, trying to launch the app, again, the app
crashed.
3) Delete, re-download all 3 system images;
ARM EABI v7a System Image.
Intel x86 Atom_64 System Image.
Intel x86 Atom System Image.
Crash Report;
FATAL EXCEPTION: main
Process: com.example.akmalzaki.uniklattendanceapp2, PID: 2942
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example.akmalzaki.uniklattendanceapp2/com.example.akmalzaki.uniklattendanceapp2.Science}:
java.lang.NullPointerException: Attempt to invoke virtual method
'boolean android.nfc.NfcAdapter.isEnabled()' on a null object
reference
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual
method 'boolean android.nfc.NfcAdapter.isEnabled()' on a null object
reference
at
com.example.akmalzaki.uniklattendanceapp2.Science.onCreate(Science.java:49)
at android.app.Activity.performCreate(Activity.java:6237)
at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
You trying to get an NFC which emulator does not support. This may cause problems because there are still real devices in the world that dont have an NFC hardware. If it is critical to your application you should include manifest tag
<uses-feature android:name="android.hardware.nfc" android:required="true" />
This way the devices with no NFC support will not be able to install your application. If it is not critical, for example you have both NFC and QR Scan enabled, you can set this to false but you should very carefully check every method that asks NFCAdapter like this for example:
NfcAdapter.getDefaultAdapter(context) !=null

Categories

Resources