Flutter打包APK报错:rtmp_publisher的compileReleaseKotlin任务执行失败
问题解决方案
错误本质是你使用的rtmp_publisher 0.3.7版本存在官方代码bug,Camera.kt文件中错误调用了不存在的startStream方法,和Java/Kotlin互调、缓存无关,可按以下优先级解决:
方案1:升级插件版本(优先选择)
在项目pubspec.yaml文件中,将rtmp_publisher的依赖版本升级到已修复该bug的最新稳定版:
dependencies: rtmp_publisher: ^0.4.0
修改后执行flutter pub get,再重新构建APK即可。
方案2:手动修复现有版本代码(适配无法升级版本的场景)
如果项目依赖限制无法升级插件版本,可直接修改本地缓存的插件源码:
- 打开报错路径下的文件:
C:\Users\1\FlutterSDK\flutter\.pub-cache\hosted\pub.dartlang.org\rtmp_publisher-0.3.7\android\src\main\kotlin\com\app\rtmp_publisher\Camera.kt - 定位到第634行,将调用的
startStream方法名替换为该版本实际存在的推流方法startPublish - 保存修改后执行
flutter clean,再重新构建即可
方案3:依赖本地修改后的插件(避免缓存被覆盖)
如果担心后续执行flutter pub get覆盖缓存中的修改,可将rtmp_publisher 0.3.7的源码下载到项目根目录的packages文件夹下,修改完成后在pubspec.yaml中依赖本地插件:
dependencies: rtmp_publisher: path: ./packages/rtmp_publisher-0.3.7
附加配置优化
你根目录android/build.gradle的buildscript.dependencies块中存在无效配置,implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"不该出现在根目录的构建脚本依赖里,该配置已经在app模块的build.gradle中存在,可直接删除根目录下的这行代码,避免后续出现其他构建异常。
内容的提问来源于stack exchange,提问作者kolen_ka
相关产品推荐
相关产品推荐

