使用react-native-image-picker时App崩溃问题求助
解决react-native-image-picker点击拍照/相册选项后App崩溃的问题
我直接从你的崩溃日志里找到了关键问题:java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean——这是因为你传递给图片选择器的配置参数里,有个字段的类型不匹配。
看你代码里的options配置:
noData: 'true',
在你使用的react-native-image-picker@0.26.7版本中,noData参数要求的是布尔类型的true或false,但你传了一个字符串'true',导致原生模块在解析参数时触发类型转换异常,直接引发App崩溃。
修复方法
把noData的值从字符串'true'改成布尔值true即可,修改后的配置代码如下:
var options = { title: translate(isImage ? 'PROFILE_EDITOR_SELECT_IMAGE' : 'PROFILE_EDITOR_SELECT_VIDEO'), cancelButtonTitle: translate('IMAGE_PICKER_CANCEL_BUTTON_TITLE'), takePhotoButtonTitle: translate('IMAGE_PICKER_TAKE_PHOTO_BUTTON_TITLE'), chooseFromLibraryButtonTitle: translate('IMAGE_PICKER_FROM_LIBRARY_BUTTON_TITLE'), mediaType: userImageType != 'videoUrl' ? 'photo' : 'video', noData: true, // 这里修改为布尔值 videoQuality: 'low', storageOptions: { skipBackup: true, path: 'captures' } };
额外说明
从日志里ImagePickerModule.java:708调用getBoolean方法的信息可以确认,这个版本的原生模块会直接尝试读取noData为布尔类型,所以一定要严格匹配参数类型,不能用字符串代替布尔值。
内容的提问来源于stack exchange,提问作者Romel Bonnie Cañones
相关产品推荐
相关产品推荐

