Problem Description.
App works on Android 9.0, but the installation to version 4.4 program crashes with the error:
IllegalArgumentException 10-25 17:07:12.475 14178 14178 E AndroidRuntime: FATAL EXCEPTION: main 10-25 17:07:12.475 14178 14178 E AndroidRuntime: Process: com.xx.app, PID: 14178 10-25 17:07:12.475 14178 14178 E AndroidRuntime: java.lang.RuntimeException: Unable to create service com.xx.service.XXService: java.lang.IllegalArgumentException:
Stack:
10-25 17:07:12.475 14178 14178 E AndroidRuntime: FATAL EXCEPTION: main 10-25 17:07:12.475 14178 14178 E AndroidRuntime: Process: com.xx.app, PID: 14178 10-25 17:07:12.475 14178 14178 E AndroidRuntime: java.lang.RuntimeException: Unable to create service com.xx.service.XXService: java.lang.IllegalArgumentException: MediaButtonReceiver component may not be null 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at android.app.ActivityThread.handleCreateService(ActivityThread.java:2582) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at android.app.ActivityThread.access$1800(ActivityThread.java:135) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at android.os.Looper.loop(Looper.java:136) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5047) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:515) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 10-25 17:07:12.475 14178 14178 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:658)
Solution:
Register MediaButtonReceiver in Manifest
<receiver android:name="androidx.media.session.MediaButtonReceiver" > <intent-filter> <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver>