java.lang.OutOfMemoryError: Failed to allocate a 2543224 byte allocation with 2772784 free bytes and 2707KB until OOM, target footprint 536870912, growth limit 536870912; giving up on allocation because <1% of heap free after GC. at java.lang.StringFactory.newStringFromBytes(StringFactory.java:86) at java.lang.StringFactory.newStringFromBytes(StringFactory.java:65) at android.util.Base64.encodeToString(Base64.java:458) at com.entitcs.office_attendance.background_works.upload_offline_data.drawText(upload_offline_data.java:1033) at com.entitcs.office_attendance.background_works.upload_offline_data.getFileFormatImage(upload_offline_data.java:290) at com.entitcs.office_attendance.background_works.upload_offline_data.upload_selfie_attendance(upload_offline_data.java:115) at com.entitcs.office_attendance.background_works.upload_offline_data.setDataCountForUpload(upload_offline_data.java:82) at com.entitcs.office_attendance.background_works.upload_offline_data$1.onPostExecute(upload_offline_data.java:161) at com.entitcs.office_attendance.background_works.upload_offline_data$1.onPostExecute(upload_offline_data.java:139) at android.os.AsyncTask.finish(AsyncTask.java:771) at android.os.AsyncTask.-$$Nest$mfinish(Unknown Source:0) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loopOnce(Looper.java:238) at android.os.Looper.loop(Looper.java:357) at android.app.ActivityThread.main(ActivityThread.java:8094) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:957)