Home » Android » How to fix: android.app.RemoteServiceException without any message (not related to Bad Notification or Broadcast)

How to fix: android.app.RemoteServiceException without any message (not related to Bad Notification or Broadcast)

Posted by: admin April 23, 2020 Leave a comment

Questions:

I have android.app.RemoteServiceException(RSE) but without any message.
I get the following crash report on the play console. When I get RSE due to bad notification or broadcast I get the related message but in this case its a black crash.

android.app.RemoteServiceException: 
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1813)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6781)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1520)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410)

I started getting these crashes primarily on Android 7 and Samsung devices(in large)

Android versions and devices

We are following Standard guidelines for Notifications and broadcasts.

Target SDK: 25
Compile SDK: 26

I have gone through many StackOverflow questions related to RemoteServiceException but not been able to find RCA hence posting the new question.
Below are the questions I have checked and not able to find a resolution for RSE

How to&Answers:

It might be very late, but do you have content providers in your app?
If they are, are they properly declared in the manifest?
I saw ActivityThread class code for API 26. The line where the error happens is 1813.

 case INSTALL_PROVIDER:
                handleInstallProvider((ProviderInfo) msg.obj);
                break;

Following the code shows that the app is not able to publish the content provider and crashing there.

 try {
        ActivityManager.getService().publishContentProviders(
            getApplicationThread(), results);
    } catch (RemoteException ex) {
        throw ex.rethrowFromSystemServer();
    }

Late!! but might help others to debug their case.