Fehler android.Grafik.Canvas.throwIfRecycled bei der überlagerung von bitmaps
Ich versuche, um overlay-Bilder auf ein canvas-Bereich mithilfe der folgenden Methode:
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;
}
Aber meine app stürzt immer ab und das Protokoll liest:
java.lang.NullPointerException
an android.Grafik.Canvas.throwIfRecycled(Canvas.java:954)
an android.Grafik.Canvas.drawBitmap(Canvas.java:980)
bei com.MyApp.overlay ("MyApp".java:179)
Kann jemand helfen?
- Dies geschieht intermittierend durch die Art und Weise. Ich bin das herunterladen von Bildern aus dem Internet und überlagert jeweils mit einem Rahmen in Abhängigkeit von bestimmten Bedingungen. bmp1 ist das Bild, das ich herunterladen, und bmp2 ist der Rahmen ich bin überlagern Sie Sie mit.
- Sind Sie sicher, dass bmp1 ist nicht null?
- Lesen Sie Ihren Kommentar jetzt macht mir ein face palm. Ich erhalten zurück zu Ihnen, aber ich glaube, dass ich beziehen sich auf diese Methode in einem try/catch. In diesem Fall sollte es außerhalb meiner try/catch. Mehr details in Kürze. Dank Maurits. :0)
- plox hat u es lösen? :O
- ja, hast du es lösen? Ich habe das gleiche Problem (und eine harte Zeit der Prüfung/Reproduktion)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche trowIfRecycled Ausnahme beim zeichnen einer bitmap auf eine Leinwand. Ich war versuchen zu ziehen, in einem thread habe ich gestartet, bevor das Programm gekommen, um zu initialisieren der bitmap. Also in meinem Fall: bitmap null war und ich hatte, um sich für einen besseren Ort, um die Initialisierung.
Obwohl dies in eine alte Frage, ich fand, dass das die Lösung für mich. http://nowherenearithaca.blogspot.com/2011/06/solved-bizarre-null-pointer-thrown-in.html
denen, die Sie vorschlagen,
Hatte ich auch das gleiche stack-trace und ich habe versucht, eine Lösung zu finden, von den Faden Dinge etc, Aber dann fand ich heraus, dass ich nie vergeben die bitmap-variable in meinem code.