Skip to content

android.app.ForegroundServiceStartNotAllowedException:  #1815

@yingchun1

Description

@yingchun1

Bug Summary

We found a lot of android.app.ForegroundServiceStartNotAllowedException in the google play console after upgrade target 31.
Most issue traces are in below two places:
com.smartdevicelink.transport.SdlBroadcastReceiver.pingRouterService (SdlBroadcastReceiver.java:477)
and
at com.smartdevicelink.transport.SdlBroadcastReceiver.startRouterService (SdlBroadcastReceiver.java:275)

I see from the code that it just catch the SecurityException only. it should also catch ForegroundServiceStartNotAllowedException for android 12 or above.

Reproduction Steps

  1. Integartion with SDL in the app with latest version(5.4.0) to support the target 31

Expected Behavior:
Should work as normal
Observed Behavior:
A lot of crash were found in google play consle after app upgrade to support target 31

Which projects have you seen this bug on?

Android

Android Version(s)

Android 12 and above

Android Device(s)

No response

sdl_java_suite Version

5.4.0

Testing Environment(s)

It seems happend just at the starting service of SDL when BT connect. Not real connect the Head Unit.

Relevant log output

android.app.ForegroundServiceStartNotAllowedException: 
  at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:54)
  at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:50)
  at android.os.Parcel.readParcelable (Parcel.java:3399)
  at android.os.Parcel.createExceptionOrNull (Parcel.java:2461)
  at android.os.Parcel.createException (Parcel.java:2448)
  at android.os.Parcel.readException (Parcel.java:2431)
  at android.os.Parcel.readException (Parcel.java:2373)
  at android.app.IActivityManager$Stub$Proxy.startService (IActivityManager.java:5971)
  at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1847)
  at android.app.ContextImpl.startForegroundService (ContextImpl.java:1823)
  at android.content.ContextWrapper.startForegroundService (ContextWrapper.java:779)
  at android.content.ContextWrapper.startForegroundService (ContextWrapper.java:779)
  at com.smartdevicelink.transport.SdlBroadcastReceiver.startRouterService (SdlBroadcastReceiver.java:275)
  at com.smartdevicelink.transport.SdlBroadcastReceiver.access$400 (SdlBroadcastReceiver.java:72)
  at com.smartdevicelink.transport.SdlBroadcastReceiver$2.onComplete (SdlBroadcastReceiver.java:342)
  at com.smartdevicelink.util.ServiceFinder.onFinished (ServiceFinder.java:122)
  at com.smartdevicelink.util.ServiceFinder.access$000 (ServiceFinder.java:56)
  at com.smartdevicelink.util.ServiceFinder$1.run (ServiceFinder.java:82)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:346)
  at android.os.Looper.loop (Looper.java:475)
  at android.app.ActivityThread.main (ActivityThread.java:7889)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1009)
Caused by: android.os.RemoteException: 
  at com.android.server.am.ActiveServices.startServiceLocked (ActiveServices.java:734)
  at com.android.server.am.ActiveServices.startServiceLocked (ActiveServices.java:653)
  at com.android.server.am.ActivityManagerService.startService (ActivityManagerService.java:12328)
  at android.app.IActivityManager$Stub.onTransact (IActivityManager.java:2519)
  at com.android.server.am.ActivityManagerService.onTransact (ActivityManagerService.java:2560)

And
java.lang.RuntimeException: 
  at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args (LoadedApk.java:1815)
  at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run (Unknown Source:2)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8663)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:567)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)
Caused by: android.app.ForegroundServiceStartNotAllowedException: 
  at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:54)
  at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:50)
  at android.os.Parcel.readParcelable (Parcel.java:3345)
  at android.os.Parcel.createExceptionOrNull (Parcel.java:2432)
  at android.os.Parcel.createException (Parcel.java:2421)
  at android.os.Parcel.readException (Parcel.java:2404)
  at android.os.Parcel.readException (Parcel.java:2346)
  at android.app.IActivityManager$Stub$Proxy.startService (IActivityManager.java:6914)
  at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1926)
  at android.app.ContextImpl.startForegroundService (ContextImpl.java:1892)
  at android.content.ContextWrapper.startForegroundService (ContextWrapper.java:796)
  at android.content.ContextWrapper.startForegroundService (ContextWrapper.java:796)
  at com.smartdevicelink.transport.SdlBroadcastReceiver.pingRouterService (SdlBroadcastReceiver.java:477)
  at com.smartdevicelink.transport.SdlBroadcastReceiver$2.onComplete (SdlBroadcastReceiver.java:360)
  at com.smartdevicelink.util.ServiceFinder.onFinished (ServiceFinder.java:122)
  at com.smartdevicelink.util.ServiceFinder.access$000 (ServiceFinder.java:56)
  at com.smartdevicelink.util.ServiceFinder$2.onReceive (ServiceFinder.java:113)
  at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args (LoadedApk.java:1805)
  at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run (Unknown Source:2)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8663)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:567)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)
Caused by: android.os.RemoteException: 
  at com.android.server.am.ActiveServices.startServiceLocked (ActiveServices.java:771)
  at com.android.server.am.ActiveServices.startServiceLocked (ActiveServices.java:679)
  at com.android.server.am.ActivityManagerService.startService (ActivityManagerService.java:14071)
  at android.app.IActivityManager$Stub.onTransact (IActivityManager.java:2943)
  at com.android.server.am.ActivityManagerService.onTransact (ActivityManagerService.java:3034)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA defect in the library

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions