Ошибка android.graphics.Canvas.throwIfRecycled при наложении растровых изображений - PullRequest
7 голосов
/ 03 марта 2010

Я пытаюсь наложить изображения на холст, используя следующий метод:

private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {

    bmOverlay = Bitmap.createBitmap(70, 70, Bitmap.Config.RGB_565);
    canvas = new Canvas(bmOverlay);
    canvas.drawBitmap(bmp1, 0, 0, null);  //line 179
    canvas.drawBitmap(bmp2, 0, 0, null);
    return bmOverlay;           
}

Однако мое приложение продолжает падать, и журнал показывает:

java.lang.NullPointerException на android.graphics.Canvas.throwIfRecycled (Canvas.java:954) на android.graphics.Canvas.drawBitmap (Canvas.java:980) at com.MyApp.overlay (MyApp.java:179)

Может кто-нибудь помочь?

Ответы [ 3 ]

4 голосов
/ 02 июня 2011

У меня было то же исключение trowIfRecycled при попытке нарисовать растровое изображение на холсте. Я пытался нарисовать поток, который я начал, до того, как программа приступила к инициализации растрового изображения. Так что в моем случае: растровое изображение было нулевым, и мне пришлось искать лучшее место для инициализации.

2 голосов
/ 29 февраля 2012

Хотя это в старом вопросе, я нашел, что это решение для меня. http://nowherenearithaca.blogspot.com/2011/06/solved-bizarre-null-pointer-thrown-in.html

где они предлагают

Попробуйте сделать чистку в затмении. Кажется, что иногда кешируется и может запутаться. Похоже, это решило этот конкретный случай.

0 голосов
/ 11 ноября 2012

У меня была такая же трассировка стека, и я пытался найти решение из потоковых вещей и т. Д., Но потом я обнаружил, что никогда не назначал переменную растрового изображения в своем коде.

...