You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Agora遇onExtensionError参数错误,请求技术支持

Agora Flutter视频通话开发问题解决方案

一、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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:15:03