Search code examples
androidvidyo

UnsatisfiedLinkError using Vidyo SDK on Android


Trying to integrate the Vidyo SDK on Android I found that when I run the app ir crash with:

java.lang.UnsatisfiedLinkError: No implementation found for long com.vidyo.VidyoClient.Connector.Connector.constructNative(java.lang.Object, com.vidyo.VidyoClient.Connector.Connector$ConnectorViewStyle, int, java.lang.String, java.lang.String, long)
(tried Java_com_vidyo_VidyoClient_Connector_Connector_constructNative and 
Java_com_vidyo_VidyoClient_Connector_Connector_constructNative__Ljava_lang_Object_2Lcom_vidyo_VidyoClient_Connector_Connector_00024ConnectorViewStyle_2ILjava_lang_String_2Ljava_lang_String_2J)                                                                                    
at com.vidyo.VidyoClient.Connector.Connector.constructNative(Native Method)
at com.vidyo.VidyoClient.Connector.Connector.<init>(Connector.java:328)

I've added the jar, the .so for all platforms and build.gradle options for the jniDir and include the jar as dependency.

I've downloaded the demo app and seems to work fine but I can't see the diff.

Build.gradle:

api files('src/main/jniLibs/vidyoclient.jar')
sourceSets {
    main {
        jniLibs.srcDirs = ['src/main/jniLibs/']
    }
}

Connection code:

int persons = 1;
vidyoConnector = new Connector(videoView, Connector.ConnectorViewStyle.VIDYO_CONNECTORVIEWSTYLE_Default, persons, "warning all@VidyoConnector info@VidyoClient", "", 0L);
vidyoConnector.showViewAt(videoView, 0, 0, videoView.getWidth(), videoView.getHeight());
vidyoConnector.connect("prod.vidyo.io", getIntent().getStringExtra("token"), "TODO", getIntent().getStringExtra("resource_id"), VideoChatActivity.this);

Solution

  • I've found the solution. The problem is that the documentation never say that you should run this code before using the Connector class:

        ConnectorPkg.setApplicationUIContext(this)
        ConnectorPkg.initialize()