video_player 2.2.19发布构建报错:调试正常但出现通道连接异常
问题描述
使用video_player 2.2.19包时,调试构建可正常运行,但发布构建时抛出以下错误:
PlatformException(channel-error, Unable to establish connection on channel., null, null)
堆栈跟踪信息:
I/flutter (13504): ------------StackTrace------------- I/flutter (13504): #0 VideoPlayerApi.create (package:video_player_android/src/messages.dart:181) I/flutter (13504): #1 AndroidVideoPlayer.create (package:video_player_android/src/android_video_player.dart:56) I/flutter (13504): #2 VideoPlayerController.initialize (package:video_player/video_player.dart:352)
已尝试的解决方法:
- Flutter版本升级
- 执行
flutter pub --outdated命令检查依赖
可能的解决方法
1. 添加ProGuard/R8混淆规则
发布构建时R8混淆可能会误删video_player的通道通信代码,在android/app/proguard-rules.pro中添加以下规则:
-keep class io.flutter.plugins.videoplayer.** { *; } -keep class com.google.android.exoplayer2.** { *; }
添加后重新执行发布构建。
2. 检查AndroidManifest配置
- 若播放网络视频,确认
android/app/src/main/AndroidManifest.xml中添加了网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
- 开启硬件加速(部分设备依赖此配置):
<application ... android:hardwareAccelerated="true">
3. 清理缓存后重新构建
执行以下命令清理构建缓存,再重新生成发布包:
flutter clean flutter pub get flutter build apk --release
4. 调整video_player版本
当前2.2.19版本可能存在发布构建兼容性问题,可尝试:
- 升级到最新稳定版
- 降级到已知稳定的版本(如2.2.15)
修改pubspec.yaml中的版本号后执行flutter pub get。
5. 对齐Flutter与Android SDK版本
确保android/build.gradle中的compileSdkVersion、targetSdkVersion与当前Flutter版本支持的Android SDK版本匹配,避免因版本不兼容导致通道连接失败。
内容的提问来源于stack exchange,提问作者Saurav Kumar
相关产品推荐
相关产品推荐

