Unity-Technologies / com.unity.mobile.notifications

Mobile Notifications Package
https://docs.unity3d.com/Packages/com.unity.mobile.notifications@2.1/manual/index.html
Other
131 stars 42 forks source link

[Android] java.lang.OutOfMemoryError on app start #198

Closed abogarsukov-braingames closed 2 years ago

abogarsukov-braingames commented 2 years ago

It happens on the app start with the latest notifications package. I know a similar issue was resolved for v2.0.2, but it seems there are edge cases.

Unity 2020.3.29 Android 12 Notifications v2.0.2

Fatal Exception: java.lang.OutOfMemoryError: Failed to allocate a 6063491304 byte allocation with 8388608 free bytes and 248MB until OOM, target footprint 15983600, growth limit 268435456
   at android.os.Parcel.createString8Array(Parcel.java:1477)
   at android.content.pm.ApplicationInfo.<init>(ApplicationInfo.java:1997)
   at android.content.pm.ApplicationInfo.<init>(ApplicationInfo.java:60)
   at android.content.pm.ApplicationInfo$1.lambda$createFromParcel$0(ApplicationInfo.java:1966)
   at android.content.pm.ApplicationInfo$1$$ExternalSyntheticLambda0.readRawParceled()
   at android.os.Parcel.readSquashed(Parcel.java:2122)
   at android.content.pm.ApplicationInfo$1.createFromParcel(ApplicationInfo.java:1966)
   at android.content.pm.ApplicationInfo$1.createFromParcel(ApplicationInfo.java:1963)
   at android.os.Parcel.readParcelable(Parcel.java:3333)
   at android.os.Parcel.readValue(Parcel.java:3226)
   at android.os.Parcel.readArrayMapInternal(Parcel.java:3623)
   at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
   at android.os.BaseBundle.unparcel(BaseBundle.java:236)
   at android.os.Bundle.getParcelable(Bundle.java:1002)
   at android.app.Notification$Builder.recoverBuilder(Notification.java:6361)
   at com.unity.androidnotifications.UnityNotificationUtilities.recoverBuilder(UnityNotificationUtilities.java:517)
   at com.unity.androidnotifications.UnityNotificationManager.loadSavedNotifications(UnityNotificationManager.java:519)
   at com.unity.androidnotifications.UnityNotificationRestartOnBootReceiver.rescheduleSavedNotifications(UnityNotificationRestartOnBootReceiver.java:26)
   at com.unity.androidnotifications.UnityNotificationRestartOnBootReceiver.onReceive(UnityNotificationRestartOnBootReceiver.java:21)
   at android.app.ActivityThread.handleReceiver(ActivityThread.java:4348)
   at android.app.ActivityThread.access$1700(ActivityThread.java:253)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2101)
   at android.os.Handler.dispatchMessage(Handler.java:106)
   at android.os.Looper.loopOnce(Looper.java:201)
   at android.os.Looper.loop(Looper.java:288)
   at android.app.ActivityThread.main(ActivityThread.java:7880)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:568)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
AntonPetrov83 commented 2 years ago

@abogarsukov-braingames Hi! It was fixed in PR 179.

abogarsukov-braingames commented 2 years ago

@AntonPetrov83 no, we still observe this issue using v2.0.2.

AntonPetrov83 commented 2 years ago

@abogarsukov-braingames you are right of course.

UnityNotificationUtilities.recoverBuilder have not received this try-catch clause for OutOfMemoryError.

aurimasc commented 2 years ago

Fixed in master.