Flutter使用jitsi_meet_wrapper点击加入会议按钮后应用立即崩溃求助
问题描述
- 使用
jitsi_meet_wrapper包集成Jitsi会议功能 - 已配置
pro-guard.pro文件 - 在Manifest的application节点中手动添加了ConnectionService配置:
<service android:name="org.jitsi.meet.sdk.ConnectionService" android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE" android:exported="true"> <intent-filter> <action android:name="android.telecom.ConnectionService" /> </intent-filter> </service>
- 尝试在
android>app>build.gradle中添加额外依赖:
dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // added this for jitsi_meet implementation ('org.jitsi.react:jitsi-meet-sdk:5.1.0') { transitive = true } }
- 异常症状:点击加入会议按钮后应用立即崩溃关闭,调试日志关键信息:
I/JitsiMeetSDK(14331): JitsiConnectionService onAbort 6A057729-687E-4F5F-B5E1-F4E173DF65AD D/JitsiMeetSDK(14331): JitsiConnectionService onStateChanged: DISCONNECTED 6A057729-687E-4F5F-B5E1-F4E173DF65AD I/Process (14331): Sending signal. PID: 14331 SIG: 9 Lost connection to device. Exited (sigterm)
解决办法
1. 排查依赖版本冲突
移除手动添加的org.jitsi.react:jitsi-meet-sdk:5.1.0依赖,jitsi_meet_wrapper本身已包含适配的SDK版本,手动指定版本易引发冲突,保持依赖由wrapper自动管理即可。
2. 修正ProGuard/R8混淆规则
在pro-guard.pro中添加以下规则,避免Jitsi核心类被混淆:
-keep class org.jitsi.meet.sdk.** { *; } -keep class org.jitsi.** { *; } -keep class com.facebook.react.** { *; } -keep class org.webrtc.** { *; } -dontwarn org.jitsi.meet.sdk.** -dontwarn org.jitsi.** -dontwarn org.webrtc.**
若使用R8混淆,需确保上述规则生效,可暂时关闭R8测试是否为混淆导致崩溃。
3. 检查并补充必要权限
确认Manifest中包含Jitsi运行所需的全部权限,同时在运行时主动请求相机、录音等危险权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
4. 移除重复的ConnectionService配置
查看Android Studio合并后的Manifest(路径:app/manifests/merged/AndroidManifest.xml),若jitsi_meet_wrapper已自动注入ConnectionService,删除手动添加的服务配置,避免组件冲突。
5. 更换测试环境
SIG:9通常是进程被系统强制终止,尝试使用真实Android设备测试,或更新模拟器系统镜像至Android 10及以上版本,排除旧系统兼容性问题。
6. 清理缓存并重建项目
- 执行命令:
./gradlew clean清理项目缓存 - 重启Android Studio,重新构建项目
- 卸载设备上的旧应用后重新安装
内容的提问来源于stack exchange,提问作者Simon Pierre Ndizihiwe
相关产品推荐
相关产品推荐

