-
问题描述:最近做项目上传头像时用到了react-native-image-picker第三方库,使用的是 base64格式 上传,在以下配置的情况下,android点击选择相册会遇到闪退的问题,找到了问题所在,在这里分享一下解决办法。android studio 和 react-native并没有报错。
- 这里是我一开始的配置
let options = { //这里是react-native-image-picker的配置选项 title: '请选择', cancelButtonTitle: '取消', takePhotoButtonTitle: "", chooseFromLibraryButtonTitle: '选择相册', quality: 0.75, allowsEditing: true, noData: false, storageOptions: { skipBackup: true, path: 'images' }
-
定位问题:仔细调试的时候发现只有上传 大尺寸图片 的时候才会出现闪退,小尺寸图片没有出现该问题
-
寻其原因:图片太大,导致手机内存崩溃。
-
解决方案:压缩图片尺寸,主要通过 maxWidth和maxHeight 来控制上传图片的大小。
- 这里是我修改后的配置
let options = { //这里是react-native-image-picker的配置选项 title: '请选择', cancelButtonTitle: '取消', takePhotoButtonTitle: "", chooseFromLibraryButtonTitle: '选择相册', quality: 0.75, > maxWidth: 600, // 加了这两句控制大小 > maxHeight: 600, // 加了这两句控制大小 allowsEditing: true, noData: false, storageOptions: { skipBackup: true, path: 'images' }
-
总结:上传时,遇到卡顿闪退,上传后查看时,如果遇到一个页面有很多头像时,头像太大加载时会卡顿甚至闪退,而此时控制台并没有报错。仔细考虑一下应该不会是代码逻辑问题。总之遇到这种问题应该一步步定位问题去解决。
React ---- react-native-image-picker在Android上闪退的解决办法(上传头像base64,压缩上传图片)
最新推荐文章于 2024-09-01 08:27:13 发布