React ---- react-native-image-picker在Android上閃退的解決辦法(上傳頭像base64,壓縮上傳圖片)

  1. 問題描述:最近做項目上傳頭像時用到了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'
           }
    
  2. 定位問題:仔細調試的時候發現只有上傳 大尺寸圖片 的時候纔會出現閃退,小尺寸圖片沒有出現該問題

  3. 尋其原因:圖片太大,導致手機內存崩潰。

  4. 解決方案:壓縮圖片尺寸,主要通過 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'
         }
    
  5. 總結:上傳時,遇到卡頓閃退,上傳後查看時,如果遇到一個頁面有很多頭像時,頭像太大加載時會卡頓甚至閃退,而此時控制檯並沒有報錯。仔細考慮一下應該不會是代碼邏輯問題。總之遇到這種問題應該一步步定位問題去解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章