通过堆栈跟踪报告发送的Android Recycled Bitmap Crash

时间:2012-01-05 02:35:32

标签: android canvas

我没有太多的信息要说明,因为报道没有评论我的游戏在崩溃发生时的哪个部分正在播放,但是从那里我站起来,应该是不可能的得到这个错误。

这是stackTrace:

java.lang.RuntimeException: Canvas: trying to use a recycled bitmap         
android.graphics.Bitmap@44d37950 at 
android.graphics.Canvas.throwIfRecycled(Canvas.java:955) at 
android.graphics.Canvas.drawBitmap(Canvas.java:1044) at 
bladequest.graphics.DrawObject.render(DrawObject.java:81)

我收到的错误是,在第77行和第81行(单独的堆栈跟踪)中,程序中的某些位置正在使用可回收的位图

但是,这是我的代码:

case Bmp1:
        if(bmp != null && !bmp.isRecycled())
            canvas.drawBitmap(bmp, f1, f2, p);
        break;
    case Bmp2:
        if(bmp != null && !bmp.isRecycled())
            canvas.drawBitmap(bmp, r1, r2, p);
        break;

如何将循环的位图用于绘制调用???

1 个答案:

答案 0 :(得分:0)

原因可能是onDraw方法被调用,如果你想回收位图,并避免这个错误,建议覆盖onDraw方法,在提取中,你需要检查 bmp != null && !bmp.isRecycled()