react-native - 使用 react-native-image-picker 时应用程序崩溃
问题描述
使用 react-native-image-picker 在对话框中选择两个选项(“拍照”或“从库中选择”)中的任何一个时,应用程序崩溃。
附加信息
- React Native 版本:0.55.3
- react-native-image-picker 版本:0.26.7
这是显示图像选择器的功能
_showImagePicker(userImageType) {
const isImage = userImageType != 'videoUrl';
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'
}
};
ImagePicker.showImagePicker(options, (response) => {
console.log('Response = ', response);
if (response.didCancel) {
return;
}
else if (response.error) {
Alert.alert(response.error);
return;
}
else {
let source = response.uri;
if (userImageType != 'videoUrl' && response.fileSize > (6 * 1024 * 1024)) {
Alert.alert(translate("DEFAULT_ERROR_TITLE"), translate('PROFILE_EDITOR_IMAGE_SIZE_EXCEEEDS_MAX'));
return;
}
// You can also display the image using data:
// let source = {uri: 'data:image/jpeg;base64,' + response.data };
if (userImageType != 'videoUrl') {
this._processProfileData(userImageType, source);
} else {
// Updated. Adapted to new server format
this._processProfileData(userImageType, source)
}
}
});
}
记录器:
05-30 11:33:15.481 8285 8359 E AndroidRuntime:致命异常:mqt_native_modules 05-30 11:33:15.481 8285 8359 E AndroidRuntime:进程:com.tripbru.tripper.dev,PID:8285 05-30 11:33: 15.481 8285 8359 E AndroidRuntime:java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Boolean 05-30 11:33:15.481 8285 8359 E AndroidRuntime:在 com.facebook.react.bridge.ReadableNativeMap。 getBoolean(ReadableNativeMap.java:137) 05-30 11:33:15.481 8285 8359 E AndroidRuntime: 在 com.imagepicker.ImagePickerModule.parseOptions(ImagePickerModule.java:708) 05-30 11:33:15.481 8285 8359 E AndroidRuntime: 在com.imagepicker.ImagePickerModule.launchImageLibrary(ImagePickerModule.java:321) 05-30 11:33:15.481 8285 8359 E AndroidRuntime:在 com.imagepicker.ImagePickerModule。launchImageLibrary(ImagePickerModule.java:302) 05-30 11:33:15.481 8285 8359 E AndroidRuntime: 在 com.imagepicker.ImagePickerModule$2.onUseLibrary(ImagePickerModule.java:172) 05-30 11:33:15.481 8285 8359 E AndroidRuntime:在 com.imagepicker.utils.UI$1.onClick(UI.java:58) 05-30 11:33:15.481 8285 8359 E AndroidRuntime: 在 android.support.v7.app.AlertController$AlertParams$3.onItemClick(AlertController.java :1044)1044)1044)
解决方案
推荐阅读
- c - 使用 C 中的链表打印第二个 Carinfo 记录时的垃圾值
- vim - 如何使用 path=.,** 和 :find 搜索隐藏目录/文件?
- javascript - JavaScript 函数参数 - 初学者问题
- sql - 如何在 Apache Derby 中从 JDBC 获取 SQL 查询?
- python - 使用数组错误实现感知器
- python - 如何将以下 python 输出结果保存为 .csv 格式
- java - java:找不到模块:java.net.http
- android - 如何从 cloudinary 服务器获取所有上传图片的图片 url?
- redux - 如何向 react-router-redux LOCATION_CHANGE 添加属性?
- sql - 如何在ruby中按字符串的整数值排序?