Several issues on Android Meeting SDK regarding Android 15 compatibility

Description
There are several compatibility issues that cause bad experience or even app crash on devices with Android 15 beta, and need to be addressed:

  1. If user tries to tap “More” in a zoom meeting, a bottom sheet with “Meeting settings”, “Background & effects” and a cancel button is shown. However, the sheet overlaps with the system 3-button navigation bar or the horizontal navigation bar
    This seems to be one of the newer compatibility requirement for Android 15:

  2. Trying to change screen orientation in a zoom meeting with disclaimers will crash the app on my Android 15 device. stacktrace:

Caused by: java.lang.UnsupportedOperationException: Tried to obtain display from a Context not associated with one. Only visual Contexts (such as Activity or one created with Context#createWindowContext) or ones created with Context#createDisplayContext are associated with displays. Other types of Contexts are typically related to background entities and may return an arbitrary display.
                                                                                                         	at android.app.ContextImpl.getDisplay(ContextImpl.java:3088)
                                                                                                         	at android.content.ContextWrapper.getDisplay(ContextWrapper.java:1200)
                                                                                                         	at android.content.ContextWrapper.getDisplay(ContextWrapper.java:1200)
                                                                                                         	at android.content.ContextWrapper.getDisplay(ContextWrapper.java:1200)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl.shouldReportDisplayFeatures(WindowLayoutComponentImpl.java:412)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl.getDisplayFeatures(WindowLayoutComponentImpl.java:341)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl.getWindowLayoutInfo(WindowLayoutComponentImpl.java:284)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl.onDisplayFeaturesChanged(WindowLayoutComponentImpl.java:269)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl.$r8$lambda$nsJ_Bu7WZ0Hic7lNwADGIDCT0l4(Unknown Source:0)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl$ExternalSyntheticLambda0.accept(D8$SyntheticClass:0)
                                                                                                         	at androidx.window.common.DeviceStateManagerFoldingFeatureProducer.lambda$getData$0(DeviceStateManagerFoldingFeatureProducer.java:220)
                                                                                                         	at androidx.window.common.DeviceStateManagerFoldingFeatureProducer.$r8$lambda$JVS6m01xAnoohJTixZI3fIFxIvY(Unknown Source:0)
                                                                                                         	at androidx.window.common.DeviceStateManagerFoldingFeatureProducer$ExternalSyntheticLambda2.accept(D8$SyntheticClass:0)
                                                                                                         	at androidx.window.common.RawFoldingFeatureProducer.getData(RawFoldingFeatureProducer.java:71)
                                                                                                         	at androidx.window.common.DeviceStateManagerFoldingFeatureProducer.getData(DeviceStateManagerFoldingFeatureProducer.java:218)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl.onDisplayFeaturesChangedIfListening(WindowLayoutComponentImpl.java:427)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl.-$Nest$monDisplayFeaturesChangedIfListening(Unknown Source:0)
                                                                                                         	at androidx.window.extensions.layout.WindowLayoutComponentImpl$NotifyOnConfigurationChanged.onActivityCreated(WindowLayoutComponentImpl.java:437)
                                                                                                         	at android.app.Application.dispatchActivityCreated(Application.java:368)
                                                                                                         	at android.app.Activity.dispatchActivityCreated(Activity.java:1527)
                                                                                                         	at android.app.Activity.onCreate(Activity.java:1827)
                                                                                                         	at androidx.core.app.ComponentActivity.onCreate(ComponentActivity.java:84)
                                                                                                         	at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:359)
                                                                                                         	at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:216)
                                                                                                         	at us.zoom.uicommon.activity.ZMActivity.onCreate(ZMActivity.java:36)
                                                                                                         	at com.zipow.videobox.conference.ui.ZmBaseConfActivity.onCreate(ZmBaseConfActivity.java:1)
                                                                                                         	at com.zipow.videobox.conference.ui.ZmConfActivity.onCreate(ZmConfActivity.java:7)

For this issue, do you know if we can make any workaround by overriding some methods as well?

  1. Zoom SDK currently does not support 16 KB page size, which is a new requirement for Android 15: Support for 16KB page sizes (since many of zoom code is using native code). This results in app crash on launch or failure to install the app, if the device used is using 16KB page size. Zoom developers need to look into this and recompile the SDK according to rebuild your app with support for 16 KB devices so that it provides support.

Which Android Meeting SDK version?
6.1.1

I look forward to your reply! Thanks!

Hello, I would like to follow up on this, also we are encountering another type of crash that happens on Android 14 as well. We weren’t able to consistently reproduce the issue and there seems to be no visual clue when this crash happens, here are the stacktraces

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.zipow.videobox.denpendent.ZmBizDependentProvider com.zipow.videobox.VideoBoxApplication.getBizDependentProvider()' on a null object reference
       at com.zipow.videobox.mainboard.ZmMainBoardMgr.getMainboard(ZmMainBoardMgr.java:2)
       at us.zoom.proguard.yh4.a(ZmMeetingUIHelper.java:149)
       at com.zipow.videobox.conference.ui.ZmConfActivity.onCreate(ZmConfActivity.java:9)
       at <the activity for our app that extends the NewMeetingActivity>.onCreate(<line of code in the activity for our app that extends the NewMeetingActivity>)
       at android.app.Activity.performCreate(Activity.java:8975)
       at android.app.Activity.performCreate(Activity.java:8944)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4146)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:230)
       at android.os.Looper.loop(Looper.java:319)
       at android.app.ActivityThread.main(ActivityThread.java:8919)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.