2011-05-03 98 views
1

我有一个没有错误的绘图画布,但保持关闭力。我不知道为什么这是强制关闭。我对画布一无所知,如果有人能够帮助我,那会很棒。绘图画布FC

登录猫错误

05-03 10:07:12.803: ERROR/AndroidRuntime(14042): FATAL EXCEPTION: Thread-9 

05-03 10:07:12.803: ERROR/AndroidRuntime(14042): java.lang.NullPointerException 

05-03 10:07:12.803: ERROR/AndroidRuntime(14042):  at android.graphics.Canvas.throwIfRecycled(Canvas.java:954) 

05-03 10:07:12.803: ERROR/AndroidRuntime(14042):  at android.graphics.Canvas.drawBitmap(Canvas.java:980) 

05-03 10:07:12.803: ERROR/AndroidRuntime(14042):  at com.the.line.Panel.onDraw(Panel.java:59) 

这是从我的面板类的第59行

canvas.drawBitmap(kangoo, 10, 10, null); 

05-03 10:07:12.803: ERROR/AndroidRuntime(14042):  at com.the.line.CanvasThread.run(CanvasThread.java:28) 

这是从我CanvasThread班线28

_panel.onDraw(c); 

如果有帮助,我从教程here中找到了此代码。

回答

0

我想通了这个问题是我setContentView它被设置为“的setContentView(R.layout.main)”巫婆我没有使用任何XML文件在这所以当我改变了SetContentViewsetContentView(new Panel(this,null));它工作得很好。

+0

很高兴你成功了! – slund 2011-05-04 14:00:31

+0

我也是。我对此感到沮丧。 – Christian 2011-05-04 18:52:02

0

看到更多的代码会有所帮助,但根据您链接的教程,它看起来像您的图像资源不可用。你使用了R.drawable.kangoo的代码还是你做了其他的事情?

Bitmap kangoo = BitmapFactory.decodeResource(getResources(), 
          R.drawable.kangoo); 
+0

我确实使用了kangoo drawable,并且所有代码都来自教程。 – Christian 2011-05-03 19:27:38

3

看着Canvas.java

private static void throwIfRecycled(Bitmap bitmap) { 
    if (bitmap.isRecycled()) { 
     throw new RuntimeException(
        "Canvas: trying to use a recycled bitmap " + bitmap); 
    } 
} 

这将抛出一个NPE的唯一方法是,如果位为空。

你可以检查以确保kangoo不为null吗?

+0

kangoo设置为空。我将其改为绘制,但它仍然强制关闭 – Christian 2011-05-03 19:32:45

+0

如果kangoo == null,您将得到您发布的异常。当它不为空时,你是否说得到相同的异常?或者它位于不同的位置? – slund 2011-05-03 21:02:57

+0

当我拿走空的时候,我得到了同样的异常。 – Christian 2011-05-03 22:06:58