[Bug report] java.lang.IllegalAccessError when call startMeetingWithParams in Kotlin

Android runtime throws java.lang.IllegalAccessError on meetingService.startMeetingWithParams(context, params, opts) call. I was using StartMeetingParamsWithoutLogin.

java.lang.IllegalAccessError: Illegal class access: '(my class)'
attempting to access 'us.zoom.sdk.StartMeetingParams'
(declaration of '(my class)' appears in /data/app/(my apk).apk)

This only happens in Kotlin (I haven’t dig into generated bytecode but I guess Kotlin is doing some runtime parameter check).

I believe this is caused by public class StartMeetingParamsWithoutLogin extends StartMeetingParams which is a package level class (no public modifier for StartMeetingParams).

I have to put this call to a Java file to work-around this issue. I suggest to make StartMeetingParams a public class.

Which version?

To Reproduce(If applicable)
Write android app using Kotlin and make call to startMeetingWithParams, app will crash.

Hi jiulong,

Thanks for the post. Yes, this is a known issue for using Java libraries with Kotlin because of the following:

Java allows accessing protected members from other classes in the same package and Kotlin doesn’t, so Java classes will have broader access to the code

I will pass this information to our engineers and see how can we make our SDK compatible with Kotlin.