I using ...:firebase-messaging:20.0.1
on android and everthing fine when proguard is disabled. but when proguard enabled app crash with this exception
java.lang.RuntimeException: Unable to bind to service appPackageName.AppFirebaseMessagingService@e6f415b with Intent { act=com.google.firebase.MESSAGING_EVENT pkg=appPackageName }: java.lang.NullPointerException: throw with null exception
at android.app.ActivityThread.handleBindService(ActivityThread.java:3575)
at android.app.ActivityThread.access$1400(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1671)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.NullPointerException: throw with null exception
at com.google.firebase.messaging.zzc.onBind(Unknown Source:3)
at android.app.ActivityThread.handleBindService(ActivityThread.java:3559)
at android.app.ActivityThread.access$1400(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1671)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
build time output by R8
{"kind":"warning","text":"The method android.os.IBinder com.google.firebase.messaging.zzc.onBind(android.content.Intent) does not type check and will be assumed to be unreachable.","sources":[{}],"tool":"R8"}
Based on this answer firebase does not need to add manually proguard rules. but i also added below rules but crash is still happening.
-keep class com.google.firebase.** { *; }
-keep class com.google.android.gms.** { *; }