New crash after upgrading android meeting SDK to 5.11.3

Description
After upgrading the meeting sdk to version 5.11.3, our users started experiencing a new crash. Below are some stack traces. There are few different stack traces but the ultimate cause is always the PreferenceUtil.saveBooleanValue. We use the default meeting UI and from our firebase logs we see that over 85% of the time, the crash happens within the first 5 seconds of the user starting to use the app. Thanks in advance for the help!

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.whova.event/com.zipow.videobox.MeetingEndMessageActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4035)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Caused by java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
       at us.zoom.libtools.storage.PreferenceUtil.saveBooleanValue(PreferenceUtil.java:3)
       at us.zoom.libtools.utils.h.p(ZmDeviceUtils.java:24)
       at us.zoom.libtools.utils.h.n(ZmDeviceUtils.java:7)
       at us.zoom.uicommon.activity.ZMActivity.onCreate(ZMActivity.java:34)
       at com.zipow.videobox.MeetingEndMessageActivity.onCreate(MeetingEndMessageActivity.java:1)
       at android.app.Activity.performCreate(Activity.java:8290)
       at android.app.Activity.performCreate(Activity.java:8270)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4009)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.whova.event/com.whova.bulletin_board.activities.ZoomMeetingActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4035)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Caused by java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
       at us.zoom.libtools.storage.PreferenceUtil.saveBooleanValue(PreferenceUtil.java:3)
       at us.zoom.libtools.utils.h.p(ZmDeviceUtils.java:24)
       at us.zoom.libtools.utils.h.n(ZmDeviceUtils.java:7)
       at us.zoom.uicommon.activity.ZMActivity.onCreate(ZMActivity.java:34)
       at com.zipow.videobox.conference.ui.ZmBaseConfActivity.onCreate(ZmBaseConfActivity.java:1)
       at com.zipow.videobox.ConfActivity.onCreate(ConfActivity.java:1)
       at com.zipow.videobox.d.onCreate(ConfAccessibilityActivity.java:1)
       at com.zipow.videobox.ConfActivityNormal.onCreate(ConfActivityNormal.java:7)
       at us.zoom.sdk.MeetingActivity.onCreate(MeetingActivity.java:1)
       at com.whova.bulletin_board.activities.ZoomMeetingActivity.onCreate(ZoomMeetingActivity.java:371)
       at android.app.Activity.performCreate(Activity.java:8290)
       at android.app.Activity.performCreate(Activity.java:8270)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4009)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.whova.event/com.zipow.videobox.conference.ui.ZmFoldableConfActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3431)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:223)
       at android.app.ActivityThread.main(ActivityThread.java:7664)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
Caused by java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
       at us.zoom.libtools.storage.PreferenceUtil.saveBooleanValue(PreferenceUtil.java:3)
       at us.zoom.libtools.utils.h.p(ZmDeviceUtils.java:24)
       at us.zoom.libtools.utils.h.n(ZmDeviceUtils.java:7)
       at us.zoom.uicommon.activity.ZMActivity.onCreate(ZMActivity.java:34)
       at com.zipow.videobox.conference.ui.ZmBaseConfActivity.onCreate(ZmBaseConfActivity.java:1)
       at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.onCreate(ZmFoldableConfActivity.java:1)
       at android.app.Activity.performCreate(Activity.java:7994)
       at android.app.Activity.performCreate(Activity.java:7978)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3404)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:223)
       at android.app.ActivityThread.main(ActivityThread.java:7664)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Which Android Meeting SDK version?
5.11.3

To Reproduce
We have not been able to reproduce

Smartphone (please complete the following information):
It has happened on a lot of different device types and android versions. Below are a few:

Galaxy A02s (android 11)
Galaxy S21 5G (android 12)
Galaxy S10e (android 12)
Pixel 2 XL (android 11)
Pixel 3a (android 12)
Galaxy S20 FE 5G (android 12)
OnePlus6T (android 11)
Redmi Note 10 Pro Max (android 12)

Hi @dan1994,

Below is a specific method to capture the logs in details, could you share those logs here?

Meanwhile, could you share what’s the version of SDK you were previously upgrading from?

Hi @chunsiong.tan ,

Thanks for the reply. So far all of the crashes have come from our users and we haven’t been able to reproduce the crash to get the logs yet, but we’ll try again today. We were upgrading from 5.10.3.

Thanks!

Hi @chunsiong.tan ,

We tried for a while today but we were not able to reproduce the crash on our own devices so we couldn’t get the logs. As I mentioned in my reply above we upgraded from version 5.10.3.

Thanks!

Facing exactly same issue after upgrading Zoom SDK to 5.11.3

@ajayalag1974 ,

could you enable the log, reproduce the crash, and share the log?

I will explain why it could be happening based on what we are doing so you try to replicate it at your end to get all details you need.

I just have implemented auto logout security in our app i.e. whenever same user id logged in from another device it gets automatically logged out from previous logged-in device (if running) and when logout signal is received by my app in previous device, my code via zoom sdk leave currently opened zoom meeting via leaveCurrentMeeting and than log them out from the app.

Crash occurs when meeting is left prematurely i.e. meeting is in the process of joining and than is asked to closed via leaveCurrentMeeting. I was able to reproduce it by login via same user id into my app via 2 different devices constantly, login into 1st device causes 2nd device to logged out & than login into 2nd device caused 1st device to logged out and so on until somewhere it causes this crash.

If you see crash logs posted by OP, it has reference to “MeetingEndMessageActivity” it could be an another indicator that the whole crash is somewhat related to closing the meeting/leaving the meeting.

Hi @chunsiong.tan ,

I’m just following up on this to see if you’ve had the chance to look into this issue more.

Thanks!

@dan1994 without the log it might be hard to tell what might be causing this.

here are some possibilities, but not necessarily the ones which you are facing

  1. deprecated configurations made in MeetingSettingsHelper
  2. deprecated calls, possibly made in the ZoomSDKAuthenticationListener callback
  3. deprecated MeetingOptions, possibly made when trying startMeetingWithParams or joinMeetingWithParams

Hi @chunsiong.tan ,

Thanks for the reply. I checked and that doesn’t seem to be the issue. @ajayalag1974 since you’ve been able to reproduce the crash, would you be able to collect the logs and post them here, so that they can look into the issue more?

Thanks

Hi @chunsiong.tan ,

Just to provide a bit more information about the crash. It seems to happen to users when they initialize the SDK as firebase tells us that the crash happens within the first second of the user’s session. Additionally, the crash has happened mostly (but not exclusively) on devices with Mediatek CPUs. Hopefully this information can assist in diagnosing the root cause.

Thanks a lot!

Hi @chunsiong.tan ,

I notice that a new version of the android meeting sdk was released today. Is this crash expected to be fixed in this new version?

Thanks.

Hi @chunsiong.tan ,

I’m just following on my message above, checking if the new android meeting sdk (5.11.10) fixes this crash or not.

Thanks!

Hi @donte.zoom @michael.zoom ,

We’ve discovered that this crash is still happening in 5.11.10. I’m wondering if the team will be looking into a possible fix for this in a future sdk release?

Thanks!

Hi @chunsiong.tan , @donte.zoom , @jon.zoom , and @michael.zoom ,

I noticed a new meeting sdk was released today. There was no mention of this crash being fixed in the change log, but I just want to confirm that it wasn’t fixed. If not, I’m wondering if there are any plans for the team to look into this crash in the future?

Thanks!

Hi, @dan1994 ,

Can you enable logs and share the logs with us so we can have our engineers take a closer look at what is going on?

Log feature

Hi @donte.zoom ,

Thanks for the reply. We’ve put a lot of efforts into reproducing the crash on our own but we haven’t been able to. We only receive the stack traces from the firebase logs of our users experiencing the crash. Is there anyway the issue could be investigated based on the stack traces in the original post?

Thanks.

@dan1994 ,

While the firebase logs are helpful, unfortunately, we are not able to get more insights to investigate solely based on the stack traces in the original post. The Andriod logs are vital to properly identifying and diagnosing what may be happening with the SDK.

Is there any way you can reproduce the issue and provide updated stack traces from the firebase logs and Anriod logs? This will allow us to get a full picture of what may be happing.