Today I faced new problem with xamarin app project, after I changed target type to aab and enable code shrinker.
App crashes on startup with error:java.lang.RuntimeException: Unable to instantiate receiver com.google.firebase.iid.FirebaseInstanceIdReceiver: java.lang.InstantiationException: java.lang.Class<com.google.firebase.iid.FirebaseInstanceIdReceiver> cannot be instantiated at android.app.ActivityThread.handleReceiver(ActivityThread.java:3290) at android.app.ActivityThread.-wrap20(ActivityThread.java:-1) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1715) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6682) at java.lang.reflect.Method.invoke(Method.java:-2) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) Caused by: java.lang.InstantiationException: java.lang.Class<com.google.firebase.iid.FirebaseInstanceIdReceiver> cannot be instantiated at java.lang.Class.newInstance(Class.java:-2) at android.app.ActivityThread.handleReceiver(ActivityThread.java:3285) at android.app.ActivityThread.-wrap20(ActivityThread.java:-1) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1715) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6682) at java.lang.reflect.Method.invoke(Method.java:-2) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
I added proguard.cfg file with following content, but it not work.
`
-dontobfuscate
-keep class mono.MonoRuntimeProvider { *; (...); }
-keep class mono.MonoPackageManager { *; (...); }
-keep class mono.MonoPackageManager_Resources { *; (...); }
-keep class mono.android.** { *; (...); }
-keep class mono.java.** { *; (...); }
-keep class mono.javax.** { *; (...); }
-keep class opentk.platform.android.AndroidGameView { *; (...); }
-keep class opentk.GameViewBase { *; (...); }
-keep class opentk_1_0.platform.android.AndroidGameView { *; (...); }
-keep class opentk_1_0.GameViewBase { *; (...); }
-keep class android.runtime.** { (*); }
-keep class assembly_mono_android.android.runtime. { (***); }
-keep class md52ce486a14f4bcd95899665e9d932190b.** { *; (...); }
-keepclassmembers class md52ce486a14f4bcd95899665e9d932190b.** { *; (...); }
-keepclassmembers class * extends android.view.View {
*** set*(***);
}
-keepclassmembers class * extends android.view.View {
(android.content.Context,android.util.AttributeSet);
(android.content.Context,android.util.AttributeSet,int);
}
-keep class com.google.firebase.provider.FirebaseInitProvider
-dontwarn com.google.android.gms.
-keep class com.google.android.gms.** { *; }
-keep class com.google.firebase.* { *; }**
`
How to fix such issue?
When I disable ProGuard/R8 shrinker all is ok.
I checked, I think, all google pages already, about this problem, and cannot bring it to work with xamarin.