Android InstantSDK (1.0.0 and 1.0.1) is not working (crashes) on Samsung Tablets

Description
The instant SDK application for android that we can can download crashes on Tablets

Which version?
1.0.0 and 1.0.1

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Install the demo app on some tablet
  2. Click on Create Session
  3. Click on Create
  4. App crashes

Screenshots and Log
Attached are 2 screenshots and from here you can download the full log from logcat

Tablets

  • Samsung SM-T290

  • OS: Android 10]

  • Samsung SM-T510

  • OS: Android 10

1 Like

Hi @blagojco, thanks for the post.

Sorry to hear you are experiencing a crash with the sample app, thank you for bringing this to our attention. We will investigate this behavior and let you know as soon as we have an update.

Thanks!

Hi Jon,

update: it happens again on Samsung S9, so it can be related with all Samsung devices.

1 Like

Hi @blagojco,

I suspected that this was exclusive to Samsung devices, so thank you for taking time to confirm that. I have made note of this on our internal ticket. :slightly_smiling_face:

Thanks!

Is this problem solved? I have same error like this can you confirm me with the error
JNI DETECTED ERROR IN APPLICATION: JNI GetStaticMethodID called with pending exception java.lang.NoSuchMethodError: no non-static method “Lorg/webrtc/voiceengine/AudioDeviceAndroidOpenSLESHelper;.isPTApp()Z”

Hi @urv1388, thanks for using our SDK.

Can you please provide the full crash logs, device type, Android OS version, and the SDK version you are using?

Thanks!

Device : Samsung Galaxy Tab 7A
Android OS : 10
SDK Version : 30

I have also problem in Samsung 7 Edge with Android OS 8, but when I run with same code same sdk version it works on my ZTE tablet. I think it only have problem with Samsung devices.

Please see the error below

A/antSDKPlaygrou: java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: JNI GetStaticMethodID called with pending exception java.lang.NoSuchMethodError: no non-static method “Lorg/webrtc/voiceengine/AudioDeviceAndroidOpenSLESHelper;.isPTApp()Z”
java_vm_ext.cc:577] at void us.zoom.internal.SDKEngine.heartBeatImpl() ((null):-2)
A/antSDKPlaygrou: java_vm_ext.cc:577] at void us.zoom.internal.SDKEngine.heartBeat() ((null):-1)
java_vm_ext.cc:577] at void us.zoom.internal.SDKApplication$1.run() ((null):-1)
java_vm_ext.cc:577] at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:883)
java_vm_ext.cc:577] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:100)
java_vm_ext.cc:577] at void android.os.Looper.loop() (Looper.java:237)
java_vm_ext.cc:577] at void android.app.ActivityThread.main(java.lang.String) (ActivityThread.java:8154)
java_vm_ext.cc:577] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object) (Method.java:-2)
java_vm_ext.cc:577] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:496)
java_vm_ext.cc:577] at void com.android.internal.os.ZygoteInit.main(java.lang.String) (ZygoteInit.java:1100)
java_vm_ext.cc:577]
java_vm_ext.cc:577] in call to GetStaticMethodID
java_vm_ext.cc:577] from void us.zoom.internal.SDKEngine.heartBeatImpl()
A/antSDKPlaygrou: runtime.cc:642] Runtime aborting…
runtime.cc:642] Dumping all threads without mutator lock held
runtime.cc:642] All threads:
runtime.cc:642] DALVIK THREADS (22):
runtime.cc:642] “main” prio=10 tid=1 Runnable
runtime.cc:642] | group="" sCount=0 dsCount=0 flags=0 obj=0x72e3e9d8 self=0x7041961000
runtime.cc:642] | sysTid=12150 nice=-10 cgrp=default sched=0/0 handle=0x7042ed8ee8
runtime.cc:642] | state=R schedstat=( 2374964910 215664043 2651 ) utm=201 stm=36 core=6 HZ=100

com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
runtime.cc:650] JNI DETECTED ERROR IN APPLICATION: JNI GetStaticMethodID called with pending exception java.lang.NoSuchMethodError: no non-static method “Lorg/webrtc/voiceengine/AudioDeviceAndroidOpenSLESHelper;.isPTApp()Z”
runtime.cc:650] at void us.zoom.internal.SDKEngine.heartBeatImpl() ((null):-2)
runtime.cc:650] at void us.zoom.internal.SDKEngine.heartBeat() ((null):-1)
runtime.cc:650] at void us.zoom.internal.SDKApplication$1.run() ((null):-1)
runtime.cc:650] at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:883)
runtime.cc:650] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:100)
runtime.cc:650] at void android.os.Looper.loop() (Looper.java:237)
runtime.cc:650] at void android.app.ActivityThread.main(java.lang.String) (ActivityThread.java:8154)
runtime.cc:650] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:496)
runtime.cc:650]
runtime.cc:650] in call to GetStaticMethodID
runtime.cc:650] from void us.zoom.internal.SDKEngine.heartBeatImpl()
W/antSDKPlaygrou: 0xebadde09 skipped times: 0
A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 12150 (antSDKPlaygroud), pid 12150 (antSDKPlaygroud)

Hi @urv1388,

Thanks for providing the additional info. To clarify, the SDK version I asked for in my previous post was actually referring to the Zoom SDK version, not the Android SDK. :slightly_smiling_face:

Also, can you please let me know the steps to reproduce this crash?

Thanks!

Hi @jon.lieblich

Thanks for your reply!

I am using zoom-instant-sdk-android-1.0.1.

I nothing doing with your sample application just add line on JWTUtil class here below and run the app and crash on Samsung devices.

add line*****
payLoadObject.put(“tpc”,sessionName);

change line****
payLoadObject.put(“typ”, “JWT”);
to
headerObject.put(“typ”, “JWT”);

public class JWTUtil {

final static String TAG = JWTUtil.class.getSimpleName();

final static long EXPIRED_TIME = 3600 * 4;

private static final String apiKey = "";

private static final String apiSecret = "";
//for sdk user to bind zoom id with app userId.
public static String customIdentity="test_"+ Build.MODEL;


public static String createJWTAccessToken(String sessionName) {

    int version = BuildConfig.VERSION_CODE;
    long iat = System.currentTimeMillis() / 1000;
    long exp = iat + EXPIRED_TIME;

    if (TextUtils.isEmpty(apiKey) || TextUtils.isEmpty(apiSecret)) {
        return "";
    }

    JSONObject headerObject = new JSONObject();
    JSONObject payLoadObject = new JSONObject();
    try {
        payLoadObject.put("app_key", apiKey);
        payLoadObject.put("version", version);
        payLoadObject.put("iat", iat);
        payLoadObject.put("exp", exp);
        payLoadObject.put("user_identity",customIdentity);
        payLoadObject.put("tpc",sessionName);
    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }

    try {
        headerObject.put("alg", "HS256");
        headerObject.put("typ", "JWT");
    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }

    String payload = payLoadObject.toString();
    String header = headerObject.toString();

    try {
        String headerBase64Str = Base64.encodeToString(header.getBytes("utf-8"), Base64.NO_WRAP | Base64.NO_PADDING | Base64.URL_SAFE);
        String payloadBase64Str = Base64.encodeToString(payload.getBytes("utf-8"), Base64.NO_WRAP | Base64.NO_PADDING | Base64.URL_SAFE);
        final Mac mac = Mac.getInstance("HmacSHA256");
        SecretKeySpec secretKeySpec = new SecretKeySpec(apiSecret.getBytes(), "HmacSHA256");
        mac.init(secretKeySpec);

        byte[] digest = mac.doFinal((headerBase64Str + "." + payloadBase64Str).getBytes());

        String token = headerBase64Str + "." + payloadBase64Str + "." + Base64.encodeToString(digest, Base64.NO_WRAP | Base64.NO_PADDING | Base64.URL_SAFE);

        Log.d(JWTUtil.class.getName(), "createJWTAccessToken:" + token);

        return token;
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (InvalidKeyException e) {
        e.printStackTrace();
    }
    return null;
}

}

1 Like

Hi @urv1388,

Thanks for the additional information. We will investigate this and let you know as soon as we have identified a solution.

Thanks!

Hi @jon.lieblich ,

Zoom SDK version is 42213.0104 which I have the problem faced.

Hi @urv1388 and @blagojco,

Can you please download the latest release of the SDK and let me know if this issue is still present?

Thanks!

Hi @jon.lieblich , I’m facing exact same issue in my Samsung devices. App crashes whenever i try initiating a session. I’d greatly appreciate any assistance in resolving this issue.
Thanks

Which version?
FULLY CUSTOMIZABLE SDKS 1.0.1

To Reproduce(If applicable)
Steps to reproduce the behavior:

Install the demo app on some tablet
Click on Create Session
Click on Create
App crashes

DEVICE:

Samsung SM-A217F/DS

Android Version:
10
Screen shot

Logcat sample
A/antSDKPlaygrou: java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: JNI GetStaticMethodID called with pending exception java.lang.NoSuchMethodError: no non-static method “Lorg/webrtc/voiceengine/AudioDeviceAndroidOpenSLESHelper;.isPTApp()Z”
java_vm_ext.cc:577] at void us.zoom.internal.SDKEngine.heartBeatImpl() ((null):-2)
java_vm_ext.cc:577] at void us.zoom.internal.SDKEngine.heartBeat() ((null):-1)
java_vm_ext.cc:577] at void us.zoom.internal.SDKApplication$1.run() ((null):-1)
java_vm_ext.cc:577] at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:883)
java_vm_ext.cc:577] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:100)
java_vm_ext.cc:577] at void android.os.Looper.loop() (Looper.java:237)
java_vm_ext.cc:577] at void android.app.ActivityThread.main(java.lang.String) (ActivityThread.java:8167)
java_vm_ext.cc:577] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object) (Method.java:-2)
java_vm_ext.cc:577] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:496)
java_vm_ext.cc:577] at void com.android.internal.os.ZygoteInit.main(java.lang.String) (ZygoteInit.java:1100)
java_vm_ext.cc:577]
java_vm_ext.cc:577] in call to GetStaticMethodID
java_vm_ext.cc:577] from void us.zoom.internal.SDKEngine.heartBeatImpl()
A/antSDKPlaygrou: runtime.cc:642] Runtime aborting…
runtime.cc:642] Dumping all threads without mutator lock held
runtime.cc:642] All threads:
runtime.cc:642] DALVIK THREADS (25):
runtime.cc:642] “main” prio=10 tid=1 Runnable
runtime.cc:642] | group="" sCount=0 dsCount=0 flags=0 obj=0x728ea058 self=0x7adffb2000
runtime.cc:642] | sysTid=22366 nice=-10 cgrp=default sched=0/0 handle=0x7ae1522ee8
runtime.cc:642] | state=R schedstat=( 14940767921 134921819 3953 ) utm=1453 stm=40 core=4 HZ=100
runtime.cc:642] | stack=0x7ff53f4000-0x7ff53f6000 stackSize=8192KB
runtime.cc:642] | held mutexes= “abort lock” “mutator lock”(shared held)
runtime.cc:642] native: #00 pc 00000000004151c0 /apex/com.android.runtime/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+140)
runtime.cc:642] native: #01 pc 00000000004fb004 /apex/com.android.runtime/lib64/libart.so (art::thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits>&, bool, BacktraceMap*, bool) const+508)
runtime.cc:642] native: #02 pc 000000000051511c /apex/com.android.runtime/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+820)
A/antSDKPlaygrou: runtime.cc:642] native: #03 pc 000000000050e504 /apex/com.android.runtime/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+552)

Hi @alam.ashraful, thanks for using our SDK.

Sorry to hear you are running into a crash as well. We will investigate this and let you know as soon as we have any updates.

Thanks!

1 Like

Issue got resolved in zoom-instant-sdk-android-1.0.2

That’s great to hear that the issue was resolved!

Please don’t hesitate to reach out in a new post if you require any additional help with the SDK. :slightly_smiling_face:

1 Like