2010-12-16 8 views
0

からユーザークラスにアクセスするときアンドロイド:私は例外を取得スレッドのコンストラクタから私のカスタムクラスのいずれかを呼び出すしようとすると、スレッド

私のメインアプリはつまるところ、なぜ...クラッシュ、私はさっぱりだが:

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

+0

ああ!そうだろう。ありがとうございました。あなたは私が通常C++でコードすることはできますか? – Rob

+0

Mmmh ...いいえ;)それが本当に問題だったならば、私の大雑把な推測がちょうどコメントではなく答えだったらいいと思う。ああ、よく... – Select0r

答えて

1

GfxData静的ではないようですが、初期化する必要はありませんか?
private GfxData m_GraphicsData = new GfxData

あなたが取得している例外を投稿できる場合は役に立ちます。

+1

静的メンバーも初期化する必要があります。コンストラクタが何回呼び出されても、一度だけ初期化する必要があることです。 –

+0

+1(コメントに15文字必要) – Select0r

関連する問題