2010-12-16 189 views
0

访问用户类时,当我尝试打电话给我的自定义类的一个从Thread构造我得到一个例外,我不知道为什么...安卓:从崩溃线程

我主要的应用可以归结为:

public class GameView extends SurfaceView implements OnTouchListener, SurfaceHolder.Callback 
{ 
    class GameThread extends Thread 
    { 
     private GfxData m_GraphicsData; 

     public GameThread(SurfaceHolder surfaceHolder, Context context, Handler handler) 
     { 
     Log.i("****", "GameThread::GameThread"); 
     m_GraphicsData.InitGfx();; 
     Log.i("****", "GameThread::end"); 
     } 
... (other required functions) 
} 

我GfxData类(整个文件)

package mypackage.stuff; 

public class GfxData 
{ 
    public GfxData() 
    { 
    } 

    public void InitGfx() 
    { 
    } 
} 

类GameThread永远不会到达构造结束;我已经从我的GfxData类(我打算传递上下文以便我可以使用它来管理我的资源)中删除几乎所有内容,但仍会导致崩溃;然而,如果我删除InitGfx()调用一切都很好

我被诅咒了!帮助将不胜感激。

+2

GfxData似乎不是静态的,你确定,你不需要初始化它吗? (例如'private GfxData m_GraphicsData = new GfxData') - 如果您可以发布您获得的异常,这将有所帮助。 – Select0r 2010-12-16 11:25:11

+0

啊!那就是它;谢谢。你可以告诉我通常用C++编写代码不是吗? – Rob 2010-12-16 12:02:00

+0

嗯...不;)如果真的是这个问题,我希望我的粗略猜测是一个答案,而不是一个评论。哦,好吧... – Select0r 2010-12-16 13:05:13

回答

1

GfxData似乎不是静态的,你确定,你不需要初始化它吗?
例如private GfxData m_GraphicsData = new GfxData

它会帮助,如果你可以发布你得到的例外。

+1

要清楚,静态成员也需要初始化;只是它们只需要被初始化一次,无论调用构造函数多少次。 – 2010-12-16 15:45:12

+0

+1(评论需要15个字符:) – Select0r 2010-12-17 09:03:14