burhanrashid52 / PhotoEditor

A Photo Editor library with simple, easy support for image editing using paints,text,filters,emoji and Sticker like stories.
MIT License
4.07k stars 981 forks source link

error saving image second time #112

Open jibraniqbal666 opened 5 years ago

jibraniqbal666 commented 5 years ago

when i use this method second time it give me an error, i use this method frequently to save previous bitmaps on every action i make.

` private fun saveImageAsBitmap(mPhotoEditor: PhotoEditor, clearViews: Boolean = false, bitmap (Bitmap?) -> Unit) { val saveSettings = SaveSettings.Builder() saveSettings.setClearViewsEnabled(clearViews).setTransparencyEnabled(false) mPhotoEditor.saveAsBitmap(saveSettings.build(), object : OnSaveBitmap { override fun onFailure(e: java.lang.Exception?) { bitmap(null) }

        override fun onBitmapReady(saveBitmap: Bitmap?) {
            bitmap(saveBitmap)
        }
    })
} 

`

stacktrace : Process: com.immentia.image.image, PID: 5333 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:354) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) at java.util.concurrent.FutureTask.setException(FutureTask.java:252) at java.util.concurrent.FutureTask.run(FutureTask.java:271) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@6467d7a at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:62) at android.graphics.BaseCanvas.drawBitmap(BaseCanvas.java:127) at android.graphics.Canvas.drawBitmap(Canvas.java:1504) at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:545) at android.widget.ImageView.onDraw(ImageView.java:1342) at android.view.View.draw(View.java:20207) at android.view.View.draw(View.java:20077) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.buildDrawingCacheImpl(View.java:19472) at android.view.View.buildDrawingCache(View.java:19338) at android.view.View.getDrawingCache(View.java:19174) at android.view.View.getDrawingCache(View.java:19125) at ja.burhanrashid52.photoeditor.PhotoEditor$6$1.doInBackground(PhotoEditor.java:731) at ja.burhanrashid52.photoeditor.PhotoEditor$6$1.doInBackground(PhotoEditor.java:717) at android.os.AsyncTask$2.call(AsyncTask.java:333) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)  at java.lang.Thread.run(Thread.java:764) 

tsandun commented 2 years ago

I also get this issue. Edited image not saving.giving same error from AsyncTask => "An error occurred while executing doInBackground()".Did anyone solved this ?

jibraniqbal666 commented 2 years ago

sorry, I don't remember anymore, it resolved if I reset canvas or something. :)