使用image_picker选图时iOS模拟器无调试信息直接崩溃如何解决
image_picker 相册选图点击崩溃无日志排查方案
你提供的选图触发代码本身符合官方编写规范,不需要在这段Dart逻辑上做过多调整,可按照以下顺序排查问题:
- 核对平台权限配置
- 安卓端:在
android/app/src/main/AndroidManifest.xml中补充对应存储权限,安卓13及以上版本需要添加READ_MEDIA_IMAGES权限,不能仅添加旧版的READ_EXTERNAL_STORAGE权限 - iOS端:在
ios/Runner/Info.plist中添加相册访问权限描述,对应的key为NSPhotoLibraryUsageDescription,value需要写明申请权限的实际用途,缺失该配置会导致iOS调用相册时直接闪退
- 安卓端:在
- 检查依赖版本兼容性
确认当前Flutter SDK版本与引入的image_picker版本适配,低于2.10的Flutter SDK不要使用过高版本的image_picker;如果安卓项目使用Kotlin开发,需要保证Kotlin版本不低于1.5.31,避免版本不兼容引发底层崩溃 - 抓取原生层崩溃日志
无Flutter层调试输出的崩溃基本都属于原生层报错,安卓端可以连接设备后在终端执行adb logcat命令抓取运行时崩溃栈,iOS端直接通过Xcode运行项目,触发崩溃后在Xcode调试面板查看具体崩溃原因 - 排查其他配置问题
确认代码中的picker是已经完成初始化的ImagePicker实例,不存在空引用问题;如果安卓端开启了代码混淆,需要补全image_picker对应的混淆规则,避免混淆后底层找不到对应类导致崩溃 - 验证依赖冲突问题
新建空Flutter项目,仅引入image_picker依赖并粘贴你写的测试代码,验证是否能正常运行,如果空项目可正常触发选图,说明原有项目中存在其他依赖与image_picker冲突,可排查近期新增的权限、相册类相关插件
内容的提问来源于stack exchange,提问作者user9273085
相关产品推荐
相关产品推荐

