-
問題描述:最近做項目上傳頭像時用到了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,壓縮上傳圖片)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.