根因两条,叠加导致 release 包 initSDK 永不返回:
1. AGP 9 默认开启 R8 混淆,OpenIM 插件用反射按字段名分发方法
(getDeclaredField("imManager")),混淆后抛 NoSuchFieldException 被静默吞掉,
Dart 侧 Future 永远 pending —— 表现为「消息组件初始化超时」
2. 插件 manifest 漏声明 ACCESS_NETWORK_STATE,onAttachedToEngine 里
registerDefaultNetworkCallback 抛 SecurityException,注册中断
修复:
- release 关闭 isMinifyEnabled / isShrinkResources(与官方样板工程配置一致)
- App manifest 补 ACCESS_NETWORK_STATE
已在模拟器上用同版本 SDK 最小复现 App 验证:修复前 release 必现卡死,
修复后 initSDK 返回 true、connect SUCCESS、login 成功。debug 包之前正常
(debug 不混淆),与此结论一致。版本号 1.0.5+6
48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
name: changlian
|
||
description: 畅联 —— 公司内部通讯 App(手机端)
|
||
publish_to: "none"
|
||
version: 1.0.5+6
|
||
|
||
environment:
|
||
sdk: ">=3.6.0 <4.0.0"
|
||
|
||
dependencies:
|
||
flutter:
|
||
sdk: flutter
|
||
flutter_localizations:
|
||
sdk: flutter
|
||
|
||
cupertino_icons: 1.0.8
|
||
# OpenIM 客户端 SDK(3.8.x 系列,与服务端 v3.8.3 配套,版本取自官方样板工程 pubspec.lock)
|
||
flutter_openim_sdk: 3.8.3+hotfix.12
|
||
# 公司账号登录等 HTTP 请求
|
||
dio: 5.9.0
|
||
# 登录凭证 / 本地小数据存储
|
||
shared_preferences: 2.5.3
|
||
# SDK 数据目录 / 录音与文件下载目录
|
||
path_provider: 2.1.5
|
||
# 语音消息录音(样板工程同款插件)
|
||
record: 6.1.2
|
||
# 语音消息播放(样板工程同款插件)
|
||
just_audio: 0.10.5
|
||
# 发文件消息时选文件
|
||
file_picker: 10.3.3
|
||
# 发图片消息时选相册图片
|
||
image_picker: 1.1.2
|
||
# 一对一语音通话(LiveKit SFU,版本取自官方样板工程 openim_live/pubspec.yaml)
|
||
livekit_client: 2.5.0+hotfix.3
|
||
# 麦克风权限申请
|
||
permission_handler: 11.4.0
|
||
# 打开收到的文件
|
||
open_filex: 4.7.0
|
||
# 通话房间号
|
||
uuid: 4.5.2
|
||
|
||
dev_dependencies:
|
||
flutter_test:
|
||
sdk: flutter
|
||
flutter_lints: 6.0.0
|
||
|
||
flutter:
|
||
uses-material-design: true
|