首页 > 解决方案 > 将 Jitsi Meet Sdk 与 linphone 集成的问题

问题描述

我在 linphone android app 开源项目上使用 JItsi meet api 进行视频通话。我已按照 jitsi meet 手册在 linphone 上进行集成。

这是我的示例代码:

public class JitsiActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    URL serverURL;
    try {
        serverURL = new URL("https://meet.jit.si");
    } catch (MalformedURLException e) {
        e.printStackTrace();
        throw new RuntimeException("Invalid server URL!");
    }
    JitsiMeetConferenceOptions defaultOptions =
            new JitsiMeetConferenceOptions.Builder()
                    .setServerURL(serverURL)
                    .setWelcomePageEnabled(false)
                    .build();
    JitsiMeet.setDefaultConferenceOptions(defaultOptions);

    JitsiMeetConferenceOptions options =
            new JitsiMeetConferenceOptions.Builder().setRoom("linphone").build();
    JitsiMeetActivity.launch(this, options);
    finish();
}

}

我在调试模式下成功拨打电话,在发布模式下拨打 apk 后,当我尝试拨打视频电话并转到主页时,它会刷新活动。你能给我一个解决这个问题的指南吗?我已经在 Android 10 操作系统上测试了 apk。

--在发布模式下调试后我发现了这个错误

020-09-24 16:50:12.383 10364-10364/org.linphone E/AndroidRuntime: 致命例外: 主进程: org.linphone, PID: 10364 java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{2329006 ActivityRecord{cf5fae1 u0 org.linphone/.activities.JitsiActivity d-1 s-1 t-1 f}} 在 android.os.Parcel.createException(Parcel.java:1967) 在 android.os.Parcel.readException(Parcel. java:1931) 在 android.app.IActivityManager$Stub$Proxy.reportSizeConfigurations(IActivityManager.java:8621) 在 android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java) 的 android.os.Parcel.readException(Parcel.java:1881) :3360) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction 的 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3318)。TransactionExecutor.executeCallbacks(TransactionExecutor.java:113) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2043) 在 android.os.Handler .dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:224) 在 android.app.ActivityThread.main(ActivityThread.java:7096) 在 java.lang.reflect.Method.invoke( Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:536) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:928) 原因:android.os。 RemoteException:远程堆栈跟踪:在 com.android.server.am.ActivityManagerService.reportSizeConfigurations(ActivityManagerService.java:10305) 在 android.app.IActivityManager$Stub.onTransact$reportSizeConfigurations$(IActivityManager.java:12560) 在 android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2357) 在 com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3841) 在 android.os.Binder.execTransact(Binder.java :750)

标签: androidlinphonejitsi-meet

解决方案


您需要为任何人提供堆栈跟踪以帮助您调试它,但是,此代码可以大大简化,这将导致更容易调试..

您正在为 Jitsi 提供它自己的默认服务器 url “https://meet.jit.si”,这不是必需的,因为 Jitsi 无论如何都会使用它自己的服务器。如果您打算使用自己的服务器,您仍然可以在JitsiMeetActivity::launch方法中轻松地提供它作为房间参数...... JitsiMeetActivity.launch(context, "https://myserver.com/linphone")

删除所有不必要的样板将使您得到以下结果:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    JitsiMeetActivity.launch(this, "linphone");
}

推荐阅读