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

集成Agora Flutter SDK至Firebase项目时requestPort未初始化错误

解决方案:LateInitializationError: Field 'requestPort' has not been initialized(Agora Flutter SDK v6.1.0)
  • 修正引擎变量声明与初始化逻辑
    避免使用late修饰_engine后出现未初始化就调用的情况,改用可空类型并在页面初始化阶段启动初始化流程:

    RtcEngine? _engine;
    
    @override
    void initState() {
      super.initState();
      WidgetsBinding.instance.addPostFrameCallback((_) => _initAgoraEngine());
    }
    
    Future<void> _initAgoraEngine() async {
      _engine = createAgoraRtcEngine();
      try {
        await _engine!.initialize(RtcEngineContext(appId: appID));
        // 后续的频道加入、音视频配置等逻辑
      } catch (e) {
        print('Agora初始化失败: $e');
      }
    }
    
  • 清理依赖缓存并重新构建
    大型项目的依赖缓存或构建残留可能导致冲突,执行以下步骤:

    1. 删除项目根目录的pubspec.lock文件
    2. 运行flutter clean清理构建缓存
    3. 执行flutter pub get重新拉取依赖
    4. Android端:删除android/.gradle和android/app/build目录后重新构建
    5. iOS端:进入ios目录执行pod deintegrate,再运行pod install
  • 核对权限配置是否完整
    确认项目权限配置未被其他模块覆盖:

    • Android AndroidManifest.xml需包含:
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.RECORD_AUDIO" />
      <uses-permission android:name="android.permission.CAMERA" />
      <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
      
    • iOS Info.plist需添加权限描述:
      <key>NSCameraUsageDescription</key>
      <string>需要访问摄像头进行视频通话</string>
      <key>NSMicrophoneUsageDescription</key>
      <string>需要访问麦克风进行语音通话</string>
      
  • 切换Agora SDK版本
    v6.1.0可能存在初始化相关的已知问题,尝试切换到稳定版本,修改pubspec.yaml:

    agora_rtc_engine: ^6.0.0
    

    之后重新执行依赖拉取和构建。

  • 避免Firebase与Agora初始化冲突
    确保Agora引擎初始化在Firebase初始化完成后执行,或者将两者的初始化放在各自独立的异步任务中,避免并行初始化导致的资源竞争。

内容的提问来源于stack exchange,提问作者Faizan Ahmad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:40:27