After pressing JOIN button I see white screen with no video + I get class cast exception

Description
I decided to migrate to the version with JWT Token instead of having explicit key & secrets for ZOOM initialization. And this bit(token generation) and supplying it to SDK works fine.
I get the entering screen for the meeting where I can disable camera and press JOIN button.
When I press JOIN button I get just the white screen, but also I get the class cast exception of the layout.

I see that it happens because of exoplayer. In the project I use exoplayer3, but you’re using exoplayer2 and this is where the problem lies. How do I make them work together?

Also I’m already using Android 34 version for compilation.

Which Android Meeting SDK version?
Zoom SDK 5.15.5.15204

Smartphone (please complete the following information):

  • Device: [e.g. Pixel 3A XL]
  • OS: [e.g. Android 12]

Exception stacktrace

data:text/text;charset=utf-8,
android.view.InflateException: Binary XML file line #174 in com.example:layout/zm_new_joinflow_jbh_wr_state_panel: Binary XML file line #36 in com.example:layout/zm_new_joinflow_video: Error inflating class <unknown>

Caused by:
android.view.InflateException: Binary XML file line #36 in com.example:layout/zm_new_joinflow_video: Error inflating class <unknown>

Caused by:
java.lang.reflect.InvocationTargetException
	 at java.lang.reflect.Constructor.newInstance0(Native Method)
	 at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
	 at android.view.LayoutInflater.createView(LayoutInflater.java:858)
	 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1010)
	 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1127)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1267)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
	 at android.view.LayoutInflater.inflate(LayoutInflater.java:538)
	 at us.zoom.proguard.tw1.a(SourceFile:4)
	 at us.zoom.proguard.h82.a(SourceFile:75)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.showConfViewState(SourceFile:10)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.switchViewTo(SourceFile:114)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.updateUIStatus(SourceFile:140)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.access$500(SourceFile:1)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity$d.run(SourceFile:4)
	 at us.zoom.proguard.ax2$c.onActive(SourceFile:16)
	 at androidx.lifecycle.LiveData.changeActiveCounter(SourceFile:35)
	 at androidx.lifecycle.LiveData$c.a(SourceFile:15)
	 at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged(SourceFile:30)
	 at androidx.lifecycle.u$b.a(SourceFile:25)
	 at androidx.lifecycle.u.h(SourceFile:83)
	 at androidx.lifecycle.u.p(SourceFile:80)
	 at androidx.lifecycle.u.l(SourceFile:35)
	 at androidx.lifecycle.u.i(SourceFile:15)
	 at androidx.lifecycle.g0$b.a(SourceFile:27)
	 at androidx.lifecycle.g0$c.onActivityPostStarted(SourceFile:10)
	 at android.app.Activity.dispatchActivityPostStarted(Activity.java:1420)
	 at android.app.Activity.performStart(Activity.java:8352)
	 at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4060)
	 at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
	 at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
	 at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
	 at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
	 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:8663)
	 at java.lang.reflect.Method.invoke(Native Method)
	 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
	 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Caused by:
java.lang.ClassCastException: androidx.media3.ui.AspectRatioFrameLayout cannot be cast to com.google.android.exoplayer2.ui.AspectRatioFrameLayout
	 at com.google.android.exoplayer2.ui.PlayerView.<init>(SourceFile:47)
	 at com.google.android.exoplayer2.ui.PlayerView.<init>(SourceFile:1)
	 at java.lang.reflect.Constructor.newInstance0(Native Method)
	 at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
	 at android.view.LayoutInflater.createView(LayoutInflater.java:858)
	 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1010)
	 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1127)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1267)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.rInflate(LayoutInflater.java:1130)
	 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
	 at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
	 at android.view.LayoutInflater.inflate(LayoutInflater.java:538)
	 at us.zoom.proguard.tw1.a(SourceFile:4)
	 at us.zoom.proguard.h82.a(SourceFile:75)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.showConfViewState(SourceFile:10)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.switchViewTo(SourceFile:114)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.updateUIStatus(SourceFile:140)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity.access$500(SourceFile:1)
	 at com.zipow.videobox.conference.ui.ZmFoldableConfActivity$d.run(SourceFile:4)
	 at us.zoom.proguard.ax2$c.onActive(SourceFile:16)
	 at androidx.lifecycle.LiveData.changeActiveCounter(SourceFile:35)
	 at androidx.lifecycle.LiveData$c.a(SourceFile:15)
	 at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged(SourceFile:30)
	 at androidx.lifecycle.u$b.a(SourceFile:25)
	 at androidx.lifecycle.u.h(SourceFile:83)
	 at androidx.lifecycle.u.p(SourceFile:80)
	 at androidx.lifecycle.u.l(SourceFile:35)
	 at androidx.lifecycle.u.i(SourceFile:15)
	 at androidx.lifecycle.g0$b.a(SourceFile:27)
	 at androidx.lifecycle.g0$c.onActivityPostStarted(SourceFile:10)
	 at android.app.Activity.dispatchActivityPostStarted(Activity.java:1420)
	 at android.app.Activity.performStart(Activity.java:8352)
	 at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4060)
	 at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
	 at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
	 at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
	 at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
	 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:8663)
	 at java.lang.reflect.Method.invoke(Native Method)
	 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
	 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Hi @ederevyanko
thanks for reaching out to us!
have you been able to troubleshoot this on your end?
Also, could you share with me how are you generating your initializing your client if you are not using key and secret?

Hi @elisa.zoom

Not really ((( I don’t quite understand why the code on your side tries to use newer ExoPlayer SDK version instead of the one that is explicitely defined in the gradle file for the “mobilertc” artifact.

As for the initialization: we have a code on the server side that generates a JWT token based on the communication outcome from your API.
As for the UI/UX: I’m able to open ZOOM Session window and it seems like to be normal, but layout is not rendered OK and I get this exception.

Hi @ederevyanko
Sorry for the late reply here. After asking around internally, you should be using the correct version of ExpoPlayer that the SDK uses to avoid this issue

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