2012-02-16 12 views
0

私は、Robert Green GLWallpaperService jarファイルを使用してOpenGLライブ壁紙を開発しています。 何の壁紙が 画面上アリドロータスクを実行しないコードを実行した後に来る例外----なぜNullPointerExceptionが発生するのですか?

02-16 11:09:31.941: E/AndroidRuntime(6286): FATAL EXCEPTION: GLThread 9 
02-16 11:09:31.941: E/AndroidRuntime(6286): java.lang.NullPointerException 
02-16 11:09:31.941: E/AndroidRuntime(6286): at com.inoxmobile.waterlwp.WaterLiveWallpaperRenderer.onDrawFrame(WaterLiveWallpaperRenderer.java:152) 
02-16 11:09:31.941: E/AndroidRuntime(6286): at  
com.inoxmobile.waterlwp.GLThread.guardedRun(GLWallpaperService.java:683)  
02-16 11:09:31.941: E/AndroidRuntime(6286):at com.inoxmobile.waterlwp.GLThread.run(GLWallpaperService.java:541) 

私はそのために、このコードを使用しています-----

public void onDrawFrame(GL10 gl) 
    { 

    if (gl == null) 
     return; 

    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);  

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
    gl.glEnableClientState(GL10.GL_NORMAL_ARRAY); 
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 

    if (usebg) { 
     gl.glDepthMask(false); 
     mBackground.draw(gl);//Exception come Here.......... 
     gl.glDepthMask(true); 
    } 

    gl.glMatrixMode(GL10.GL_MODELVIEW); 
    gl.glLoadIdentity();  

    //if (usebg){ 
     //mBackground.Init(gl); 
     //mBackground.setDims(mWidth, mHeight); 
    //} 
} 
+0

と同等です

private Background mBackground; 

、覚えておいてください、あなたが唯一のメンバー宣言を持っている場合、我々は、ここで' mBackground'されているはずです。とにかく 'mBackground'には何が入っていますか? – mauris

+0

'mBackground'がヌルです –

+0

以前に' gl'変数に何も投げなかった場合、mBackgroundが 'null'であることを意味する可能性があります。 –

答えて

1

がありますがありますあなたはmBackgroundonCreate()またはこのクラスのコンストラクタに初期化していることを確認してください。あなたはすでにそれ以前 `gl`をチェックするので、これは

private Background mBackground = null; 
関連する問題