android - 将 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)
解决方案
您需要为任何人提供堆栈跟踪以帮助您调试它,但是,此代码可以大大简化,这将导致更容易调试..
您正在为 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");
}
推荐阅读
- postgresql - 我们究竟将这个 postgresql.conf 配置文件放在 Spring Boot 应用程序中的什么位置?
- r - GGplot geom_smooth 准确拟合一条线,另一条为平线
- json - 如何在 Swift 中解析本地 JSON 数据?
- html - Angular 反应式表单以编程方式提交,无需按钮
- python - 了解 numpy.array 的形状
- cpu-cache - 其他然后缓存什么是片上内存?以及如何明确地可寻址?
- sql - OPOR(采购订单)和 ORDR(销售订单)之间的联接(SAP Business One - SQL Server)
- sql - 如何在 BigQuery 中过滤地理数据
- html - 重叠 DIV,同时保持后一个可控
- opencart - 您好,我在 opencart 3.0.2.0 上安装了 ocmod,但是在尝试激活此扩展程序时出现此错误