title: java.lang.OutOfMemoryError: Android
body: <p>I am facing issue with load bitmap image in one of my activity with cropper library. I am getting outofmemory error if image size is more than 5 MB...I have tried </p>
  
  <pre><code>android:largeHeap="true"
  </code></pre>
  
  <p>but it have not helped me for solve issue. My java code and logcat is like below</p>
  
  <p>Logcat:</p>
  
  <blockquote>
    <p>07-09 21:10:47.482: E/art(4870): Throwing OutOfMemoryError "Failed to
    allocate a 6391674 byte allocation with 6004224 free bytes and 5MB
    until OOM"
        07-09 21:10:47.482: D/AndroidRuntime(4870): Shutting down VM
        07-09 21:10:47.522: E/AndroidRuntime(4870): FATAL EXCEPTION: main
        07-09 21:10:47.522: E/AndroidRuntime(4870): Process: com.karopass.status2017, PID: 4870
        07-09 21:10:47.522: E/AndroidRuntime(4870): java.lang.OutOfMemoryError: Failed to allocate a 6391674 byte
    allocation with 6004224 free bytes and 5MB until OOM
        07-09 21:10:47.522: E/AndroidRuntime(4870):   at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:122)
        07-09 21:10:47.522: E/AndroidRuntime(4870):   at com.karopass.status2017.material.ImageLoader.addToDiskCache(ImageLoader.java:238)
        07-09 21:10:47.522: E/AndroidRuntime(4870):   at com.karopass.status2017.material.ImageLoader.saveTempImage(ImageLoader.java:271)</p>
  </blockquote>
  
  <p>as well my java code is like below</p>
  
  <pre><code>public File addToDiskCache(String imageName, Bitmap inImage) {
  
      Log.e("Add to Disk",imageName);
  
      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
      inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
  
      if(!mCacheDir.exists()){
          mCacheDir.mkdirs();
      }
  
      File filePath=new File(mCacheDir.getPath()+File.separator+imageName);
      if(!filePath.exists()) {
          try {
              filePath.createNewFile();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
      OutputStream os=null;
      try {
             os= new FileOutputStream(filePath.getPath());
              os.write(bytes.toByteArray());
              os.flush();
          } catch (IOException e) {
              Log.e("Write err",filePath.toString());
          }finally {
          try {
              os.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
      Log.e("storage path",filePath.toString());
  
      return filePath;
  }
  </code></pre>
  
  <p>Please help me for solve issue.</p>
  
  <p>Thanks</p>