Flutter集成ffmpeg_kit_flutter_https_gpl时遇Namespace未指定错误
解决Flutter中render依赖导致的ffmpeg_kit_flutter_https_gpl Namespace缺失问题
问题根源
你遇到的报错是因为render: ^0.0.8依赖的旧版本ffmpeg_kit_flutter_https_gpl未适配高版本Android Gradle Plugin(AGP)的强制namespace要求。高版本AGP不再从AndroidManifest.xml的package属性自动推导namespace,必须在模块的构建文件中显式声明,但该第三方模块未做此配置。
解决方案
1. 升级render依赖版本
优先尝试升级render到最新兼容版本,新版本可能已经替换了适配高AGP的ffmpeg_kit依赖:
- 修改
pubspec.yaml中的依赖:render: ^最新版本号 # 去pub.dev查询render的最新稳定版 - 执行命令更新依赖:
flutter pub get
2. 强制给第三方模块添加namespace
如果无法升级render,可以在项目级android/build.gradle中添加配置,为ffmpeg_kit_flutter_https_gpl模块强制设置namespace:
allprojects { repositories { google() mavenCentral() } // 添加以下配置 subprojects { if (name.contains("ffmpeg_kit_flutter_https_gpl")) { afterEvaluate { android { namespace "com.arthenica.ffmpegkit.flutter" } } } } }
同步Gradle配置后重新运行项目。
3. 降级AGP与Gradle版本
若上述方案无效,可降级到对旧模块兼容性更好的AGP和Gradle版本:
- 修改
android/gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip - 修改项目级
android/build.gradle中的AGP版本:buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 其他依赖... } } - 同步项目后重新运行。
内容的提问来源于stack exchange,提问作者Jay Parmar
相关产品推荐
相关产品推荐

