我正在尝试将Agora语音呼叫集成到我的应用中,但遇到java.lang.UnsatisfiedLinkError

时间:2019-10-11 09:32:54

标签: android java-native-interface agora.io

我在以下行收到错误消息:

AgoraAPIOnlySignal m_agoraAPI = AgoraAPIOnlySignal.getInstance(this, appID);

在AGApplication中。谁能告诉我我要去哪里错了?

如果您需要堆栈跟踪

 java.lang.UnsatisfiedLinkError: No implementation found for void io.agora.NativeAgoraAPI.jniInitGet() (tried Java_io_agora_NativeAgoraAPI_jniInitGet and Java_io_agora_NativeAgoraAPI_jniInitGet__)
    at io.agora.NativeAgoraAPI.jniInitGet(Native Method)
    at io.agora.AgoraAPIOnlySignal.getInstance(AgoraAPIOnlySignal.java:60)
    at live.smartify.community.smartliving.security.application.AGApplication.setupAgoraEngine(AGApplication.java:82)
    at live.smartify.community.smartliving.security.application.AGApplication.onCreate(AGApplication.java:67)

1 个答案:

答案 0 :(得分:0)

Agora Signaling SDK是一个单独的SDK,未与Agora的本地SDKS捆绑在一起,因此您必须与本地SDK分开下载和链接/添加到项目中。

不建议使用Agora Signaling SDK,您应该使用Agora.io's RTM SDK,它具有Signaling SDK的所有功能以及一些新功能。

确保下载SDK并将其链接到您的项目中。在项目中安装了SDK后,您可以使用以下方法进行初始化:

public void init() {
    try {
        mRtmClient = RtmClient.createInstance(mContext, APPID, new RtmClientListener() {
            @Override
            public void onConnectionStateChanged(int state, int reason) {
                Log.d(TAG, "Connection state changes to " + state + " reason: " + reason);
            }

            @Override
            public void onMessageReceived(RtmMessage rtmMessage, String peerId) {
                String msg = rtmMessage.getText();
                Log.d(TAG, "Message received " + " from " + peerId + msg);
            }
        });
    } catch (Exception e) {
        Log.d(TAG, "RTM SDK initialization fatal error!");
        throw new RuntimeException("You need to check the RTM initialization process.");
    }
}

请参阅完整的Android RTM SDK快速入门指南:https://docs.agora.io/en/Real-time-Messaging/messaging_android?platform=Android