Flutter集成Agora遇onExtensionError参数错误,请求技术支持
一、onExtensionError参数不匹配错误
错误原因
你使用的agora_uikit-1.3.10与agora_rtc_engine-6.5.0版本不兼容:agora_rtc_engine 6.5.0的RtcEngineEventHandler已移除onExtensionError参数,但agora_uikit 1.3.10仍在调用该参数,导致参数不匹配报错。
解决方法
方案1:降低rtc engine版本
在项目的pubspec.yaml中指定与agora_uikit-1.3.10兼容的agora_rtc_engine版本(1.3.10通常适配agora_rtc_engine ^6.3.0):dependencies: agora_uikit: 1.3.10 agora_rtc_engine: 6.3.0执行命令更新依赖:
flutter pub get方案2:升级agora_uikit版本
将agora_uikit升级到最新稳定版,确保其适配agora_rtc_engine-6.5.0:dependencies: agora_uikit: ^latest_version agora_rtc_engine: 6.5.0执行
flutter pub get更新依赖。
二、onMediaDeviceChanged问题排查
针对该问题,可从以下几点逐一排查:
权限配置
Android需在AndroidManifest.xml中添加相机、麦克风权限:<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />iOS需在
Info.plist中添加权限描述:<key>NSCameraUsageDescription</key> <string>需要访问相机进行视频通话</string> <key>NSMicrophoneUsageDescription</key> <string>需要访问麦克风进行语音通话</string>并在运行时主动请求权限。
版本适配
不同版本的agora_rtc_engine中onMediaDeviceChanged的回调参数可能存在差异,确保代码参数与当前版本一致。例如新版本的回调格式为:RtcEngineEventHandler( onMediaDeviceChanged: (MediaDeviceType deviceType, MediaDeviceState state, String deviceId) { // 处理设备变更逻辑 }, )设备状态检查
确认测试设备的摄像头、麦克风未被其他应用占用,且硬件功能正常。回调注册时机
确保RtcEngineEventHandler在初始化RtcEngine时正确注册,且注册时机早于joinChannel操作。
内容的提问来源于stack exchange,提问作者MD SHAMIM HOSSAIN

