7

次の方法を使用して、キャンバスに画像を重ねようとしています。

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;           
}

ただし、アプリがクラッシュし続け、ログには次のように表示されます。

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

誰でも助けることができますか?

4

2 に答える 2

4

ビットマップをキャンバスに描画しようとしているときに、同じtrowIfRecycled例外が発生しました。プログラムがビットマップを初期化する前に、開始したスレッドを描画しようとしていました。したがって、私の場合、ビットマップはnullであり、初期化を行うためのより良い場所を探す必要がありました.

于 2011-06-02T14:50:01.173 に答える
2

これは古い質問ですが、これが私にとっての解決策であることがわかりました。http://nowherenearithaca.blogspot.com/2011/06/solved-bizarre-null-pointer-thrown-in.html

彼らが提案する場所

日食できれいにしてみてください。時々キャッシュしているようで、混乱することがあります。この特定のケースでは、それで解決したようです。

于 2012-02-28T22:12:29.827 に答える