crisp-im / crisp-sdk-android

:package: Crisp Android SDK, add a chat in any Android app and communicate with your users.
https://docs.crisp.chat/guides/chatbox-sdks/android-sdk/
Other
55 stars 17 forks source link

null Context on ExoPlayer release when closing ChatActivity #113

Closed StevenWatremez closed 2 years ago

StevenWatremez commented 2 years ago

Context

Same as the previous one we have an other crash that occurs 6 times for 6 users.

Crash log

Fatal Exception: java.lang.RuntimeException: Unable to destroy activity {fr.leocare.app/im.crisp.client.ChatActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
       at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5567)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5597)
       at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:44)
       at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:190)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:213)
       at android.app.ActivityThread.main(ActivityThread.java:8178)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
       at com.google.android.exoplayer2.trackselection.TrackSelectionParameters$Builder.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettingsV19(TrackSelectionParameters.java:235)
       at com.google.android.exoplayer2.trackselection.TrackSelectionParameters$Builder.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(TrackSelectionParameters.java:140)
       at com.google.android.exoplayer2.trackselection.DefaultTrackSelector$ParametersBuilder.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(DefaultTrackSelector.java:606)
       at com.google.android.exoplayer2.trackselection.DefaultTrackSelector$ParametersBuilder.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(DefaultTrackSelector.java:170)
       at com.google.android.exoplayer2.trackselection.TrackSelectionParameters$Builder.<init>(TrackSelectionParameters.java:57)
       at com.google.android.exoplayer2.trackselection.DefaultTrackSelector$ParametersBuilder.<init>(DefaultTrackSelector.java:226)
       at com.google.android.exoplayer2.trackselection.DefaultTrackSelector$Parameters.getDefaults(DefaultTrackSelector.java:941)
       at com.google.android.exoplayer2.trackselection.DefaultTrackSelector.<init>(DefaultTrackSelector.java:1651)
       at com.google.android.exoplayer2.trackselection.DefaultTrackSelector.<init>(DefaultTrackSelector.java:1643)
       at com.google.android.exoplayer2.SimpleExoPlayer$Builder.<init>(SimpleExoPlayer.java:203)
       at com.google.android.exoplayer2.SimpleExoPlayer$Builder.<init>(SimpleExoPlayer.java:161)
       at im.crisp.client.internal.utils.b.<init>(:19)
       at im.crisp.client.internal.utils.b.a(:14)
       at im.crisp.client.Crisp.d()
       at im.crisp.client.ChatActivity.onDestroy(:3)
       at android.app.Activity.performDestroy(Activity.java:8350)
       at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1348)
       at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5552)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5597)
       at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:44)
       at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:190)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:213)
       at android.app.ActivityThread.main(ActivityThread.java:8178)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)

Information

OS Version : Android 10
Phones : HUAWEI P smart Z, Mate 10 Pro, Honor 10, Galaxy S9, P30 Pro and Redmi Note 7
SDK Version : 1.0.9
StevenWatremez commented 2 years ago

At this time in 7 days we had 22 crashes for 15 users.

Doc1faux commented 2 years ago

Hi @StevenWatremez and thank your for your feedback.

Sorry for the late reply, I was on another topic (notification migration on the app for both production and beta).

I've just pushed an update which should fix this crash. It will be released in the next 1.0.12 release. I let you know when it will be available.

Doc1faux commented 2 years ago

@StevenWatremez 1.0.12 fixing this issue has just been released. It can take a few hours before it will be available. I close the issue.