cancel
Showing results for 
Search instead for 
Did you mean: 

Zoom SDK Integration Issue - Android Application

Anuj_Kumar16
Newcomer
Newcomer

Hello Zoom Team,

I am currently working on integrating the Zoom SDK (version - 5.13.5.11583) into our Android application.

While conducting our testing, we encountered an issue that requires your expertise and assistance. The problem arises when a user attempts to join a meeting in which the host is absent, resulting in a "waiting for host" status. Unfortunately, at this point, our application crashes, and we have been unable to pinpoint the exact cause.

To provide you with more context, the integration itself works flawlessly when the host is present, and users are successfully able to join meetings. The crashing issue occurs only when the host is not present, and the user is left in the "waiting for host" state.

In order to address this concern effectively, we kindly request your guidance in understanding the cause of the crash and any potential solutions to resolve this matter promptly. As we aim to deliver a seamless user experience with our application, your expertise is vital to ensuring the smooth functioning of Zoom SDK integration.

To assist you in your investigation, I have attached the relevant crash logs and code snippets. Additionally, here is a summary of the error encountered:

FATAL EXCEPTION: main

Process: com.drbindra.badabusiness, PID: 11077

java.lang.IllegalStateException

at com.google.android.exoplayer2.util.Assertions.checkStateNotNull(Assertions.java:116)

at com.google.android.exoplayer2.ui.PlayerView.setControllerShowTimeoutMs(PlayerView.java:859)

at com.zipow.videobox.newjoinflow.waitingview.oldui.ZmJoinFlowVideoView.onVisibilityChanged(ZmJoinFlowVideoView.java:7)

at android.view.View.dispatchVisibilityChanged(View.java:15549)

at android.view.ViewGroup.dispatchVisibilityChanged(ViewGroup.java:1618)

at android.view.ViewGroup.dispatchVisibilityChanged(ViewGroup.java:1622)

at android.view.ViewGroup.dispatchVisibilityChanged(ViewGroup.java:1622)

at android.view.ViewGroup.dispatchVisibilityChanged(ViewGroup.java:1622)

at android.view.ViewGroup.dispatchVisibilityChanged(ViewGroup.java:1622)

at android.view.ViewGroup.dispatchVisibilityChanged(ViewGroup.java:1622)

at android.view.View.setFlags(View.java:17591)

at android.view.View.setVisibility(View.java:12466)

at com.zipow.videobox.newjoinflow.waitingview.oldui.ZmOldUINewJoinFlowWaitingView.setVisibility(ZmOldUINewJoinFlowWaitingView.java:2)

at com.zipow.videobox.ConfActivityNormal.switchViewTo(ConfActivityNormal.java:67)

at com.zipow.videobox.ConfActivity.switchViewToWaitingJoinView(ConfActivity.java:9)

at com.zipow.videobox.ConfActivity$y.run(ConfActivity.java:2)

at us.zoom.proguard.cg.a(EventTaskManager.java:31)

at us.zoom.proguard.cg.d(EventTaskManager.java:9)

at us.zoom.proguard.cg.a(EventTaskManager.java:17)

at us.zoom.proguard.cg.b(EventTaskManager.java:7)

at com.zipow.videobox.ConfActivity.handleUICommand(ConfActivity.java:77)

at com.zipow.videobox.ConfActivityNormal.handleUICommand(ConfActivityNormal.java:3)

at us.zoom.proguard.sg1.handleUICommand(ZmContextGroupSession.java:7)

at us.zoom.proguard.tg1.a(ZmContextGroupSessionMgr.java:22)

at us.zoom.proguard.tg1.a(ZmContextGroupSessionMgr.java:12)

at us.zoom.proguard.lf1.a(ZmConfUINativeEventImpl.java:2)

at us.zoom.proguard.ue1.a(ZmConfStateProxy.java:67)

at us.zoom.proguard.oe1.a(ZmConfStateMgr.java:58)

at com.zipow.videobox.conference.jni.ZmConfDefaultCallback.OnRequestWaitingForHost(ZmConfDefaultCallback.java:1)

at us.zoom.business.jni.ZoomCommonPTApp.dispatchIdleMessageImpl(Native Method)

at us.zoom.business.jni.ZoomCommonPTApp.dispatchIdleMessage(ZoomCommonPTApp.java:8)

at com.zipow.videobox.VideoBoxApplication$c.run(VideoBoxApplication.java:7)

at android.os.Handler.handleCallback(Handler.java:938)

at android.os.Handler.dispatchMessage(Handler.java:99)

at android.os.Looper.loop(Looper.java:246)

at android.app.ActivityThread.main(ActivityThread.java:8488)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

 

code snippets:

CoroutineScope(Dispatchers.Main).launch {

    zoomSdk = ZoomSDK.getInstance()

    val zoomParams = ZoomSDKInitParams()

    zoomParams.appKey = “**********************”

    zoomParams.domain = "zoom.us"

    zoomParams.appSecret =

        “********************************”

    zoomParams.enableLog = true

    val listener: ZoomSDKInitializeListener = object : ZoomSDKInitializeListener {

        override fun onZoomSDKInitializeResult(erroCode: Int, internalErrorCode: Int) {

            if (selectedSession != null) {

                 joinMeeting(selectedSession!!)

            }

        }

 

        override fun onZoomAuthIdentityExpired() {

        }

    }

    zoomSdk?.initialize(requireContext(), listener, zoomParams)

}

 

private fun joinMeeting(zoomSession: ZoomSessionDetails) {

    if (zoomSession.zoom_id != null) {

        val meetingService: MeetingService? = zoomSdk?.meetingService

        val option = JoinMeetingOptions()

        val meetingPram = JoinMeetingParams()

        meetingPram.displayName = "${DataManager.getInstance().userName}"

        meetingPram.meetingNo = zoomSession.zoom_id.replace(" ", "")

        meetingPram.password = zoomSession.zoom_password

        meetingService?.addListener(object : MeetingServiceListener {

            override fun onMeetingStatusChanged(status: MeetingStatus?, p1: Int, p2: Int) {

                val inMeeting = status?.equals(MeetingStatus.MEETING_STATUS_INMEETING) ?: false

                Log.d("watch", "watch-duration meeting status " + status.toString())  

            }

            override fun onMeetingParameterNotification(p0: MeetingParameter?) {

                Log.d("onMeetingParameterNotification", "onMeetingParameterNotification")

            }

        })

        val status =

            meetingService?.joinMeetingWithParams(requireContext(), meetingPram, option)

        Log.d("Status", "$status")

        if (status != MeetingError.MEETING_ERROR_SUCCESS) {

            meetingService?.leaveCurrentMeeting(true)

            Handler(Looper.getMainLooper()).postDelayed({

                meetingService?.joinMeetingWithParams(requireContext(), meetingPram, option)

            }, 2000)

        }

    } else {

        Utils.showCommonDialog(

            requireContext(), "Zoom Error", getString(R.string.title_something_went_wrong), "OK"

        ) { dialog, _ -> dialog.dismiss() }

    }

}

 

Please look into it and help me out. 

Thanks

1 REPLY 1

VA
Moderator
Moderator

Hi @Anuj_Kumar16 and welcome to the Zoom Community! I'm sorry you haven't received an answer to your question yet. You may want to ask over in our Developer Forum, they will be better able to help!


Virginia (she/her/hers)
Zoom Community Team
Have you heard of Zoom AI Companion?