集成agora_rtc_engine音视频通话时Gradle构建失败求助
解决agora_rtc_engine集成时的NDK编译类型转换错误
编译Gradle任务assembleDebug时失败,核心错误为:
/snap/flutter/current/usr/include/c++/9/memory:121:25: 错误:从指针转换为更小的类型'uintptr_t'(别名'unsigned int')会丢失信息
const auto __intptr = reinterpret_cast<uintptr_t>(__ptr);
该问题源于NDK版本与agora_rtc_engine 6.2.6的兼容性冲突,以下是可行的解决方法:
指定兼容的NDK版本
在项目的android/build.gradle文件的android节点中,添加或修改ndkVersion为21.x或22.x的稳定版本,示例:android { ndkVersion "21.4.7075529" // 其他原有配置 }NDK23及以上版本对类型转换的编译检查更严格,而agora_rtc_engine 6.2.6未适配该规则。
升级agora_rtc_engine到最新稳定版
打开pubspec.yaml,将agora_rtc_engine的版本号更新为pub.dev上的最新稳定版,示例:dependencies: agora_rtc_engine: ^6.3.0 # 替换为实际最新版本号执行
flutter pub get更新依赖后重新构建,新版本通常已修复这类编译兼容性问题。切换Flutter安装方式
当前使用的snap版Flutter自带的C++标准库可能与NDK存在冲突,可卸载snap版本,改用官方手动安装包,避免环境依赖不一致问题。清理缓存后重新构建
执行以下命令清理缓存后再编译:flutter clean rm -rf android/.cxx flutter run
内容的提问来源于stack exchange,提问作者Blasius Nkoloogi
相关产品推荐
相关产品推荐

