2011-10-01 9 views
0

안녕하세요 저는 기본적인 그래픽을위한 기본 구조를 설정하려고합니다. 그러나이 코드를 실행하면 응용 프로그램이 에뮬레이터에서 강제 종료됩니다. Android 2.3을 사용하고 있습니다. 왜이 코드는 기본 Android OpenGL을 설정하지 않습니까?

나는 여기까지

http://developer.android.com/resources/tutorials/opengl/opengl-es10.html 도움을 받기 위해이 웹 사이트를 사용했다. 25 : 57.561 : ERROR/AndroidRuntime (330) : 치명적인 예외 : 나는 OpenGL을 잘 알고 그냥 안드로이드

에 대한
public class SampleActivity extends Activity { 
/** Called when the activity is first created. */ 
private GLSurfaceView mGLView; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mGLView = new GLSurfaceView(this);  
    setContentView(mGLView); 
} 

@Override protected void onPause() 
{ 
    super.onPause(); 
    mGLView.onPause(); 
} 

@Override protected void onResume() 
{ 
    super.onResume(); 
    mGLView.onResume(); 

} 

    } 

class SampleSurfaceView extends GLSurfaceView 
{ 

public Sample2SurfaceView(Context context) { 
    super(context); 

    setRenderer(new SampleRenderer()); 
} 

} 

public class SampleRenderer implements GLSurfaceView.Renderer 
{ 
private FloatBuffer triangleVB; 
public void onSurfaceCreated(GL10 gl, EGLConfig config) 
{  
    gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); 
}  
public void onDrawFrame(GL10 gl) 
{  // Redraw background color  
     gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); 

    }  
public void onSurfaceChanged(GL10 gl, int width, int height) 
{ 
    gl.glViewport(0, 0, width, height); 
    } 

10-03 00 오전 주요 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : java.lang.RuntimeException : 활동을 재개 할 수 없습니다. (android.SampleActivity) : java.lang.NullPointerException 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : android.app.ActivityThread.performResumeActivity ActivityThread.java:2120) 10-03 00 : 25 : 57.561 : android.app.ActivityThread.handleResumeActivity (ActivityThread.java:2135) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) AndroidRuntime (330) : android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1668) 10-03 00 : 25 : 57.561 : 오류 및 AndroidRuntime (330) : android.app.ActivityThread.access $ 1500 (ActivityThread.java:117) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : android.app.ActivityThread $ H.handleMessage (ActivityThread.java:931) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : android.os.Handler.dispatchMessage (Handler.java:99) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : android.os.Looper.loop (Looper.java:123) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : android .App.ActivityThread.main (ActivityThread.java:3683) 10-03 00 : 25 : 57.561 : 오류/AndroidRuntime (330) : java.lang.reflect.Method.invokeNative (기본 메소드) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : java.lang.reflect.Method.invoke (Method.java:507) 10-03 00 : 2 5 : 57.561 : ERROR/AndroidRuntime (330) : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : at (기본 메서드) 10/3 00 : 25 : 03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : 원인 : java.lang.NullPointerException 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : android.opengl.GLSurfaceView.onResume (GLSurfaceView. java : 512) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : android.TagToMobileAlbum.TagToMobileAlbumActivity.onResume (TagToMobileAlbumActivity.java:28) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime 330) : android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1150) 10-03 00 : 25 : 57.561 : 오류 및 AndroidRuntime (330) : android.app.Activity.performResume (Activity.java:3832) 10-03 00 : 25 : 57.561 : ERROR/AndroidRuntime (330) : at android.app.ActivityThread.performResumeActivity (ActivityThread.java:2110) 10-03 00 : 25 : 57.561 : 오류/AndroidRuntime (330) : ... 자세히 알아보기 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime 340) : 치명적인 예외 : 주 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : java.lang.RuntimeException : 활동을 재실행 할 수 없습니다 : android.TagToMobileAlbum/android.TagToMobileAlbum.TagToMobileAlbumActivity} : java.lang. NullPointerException 10-03 00 : 34 : 05.661 : 오류/AndroidRuntime (340) : android.app.ActivityThread.performResumeActivity (ActivityThread.java:2120) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : android.app.ActivityThread.handle ResumeActivity (ActivityThread.java:2135) 10-03 00 : 34 : 05.661 : 오류/AndroidRuntime (340) : android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1668) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : android.app.ActivityThread.access $ 1500 (ActivityThread.자바 : 117) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340)에서 android.app.ActivityThread $ H.handleMessage (ActivityThread.java:931) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) android.os.Handler.dispatchMessage (Handler.java:99)에서 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) android.os.Looper.loop (Looper.java에서 : 123) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) android.app.ActivityThread.main (ActivityThread.java:3683)에서 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : java.lang.reflect.Method.invokeNative (원시 메소드)에 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) java.lang.reflect.Method.invoke (Method.java:507)에서 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340)에서 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : dalvik.system.NativeStart.main (원시 메소드)에 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) java.lang.NullPointerException이 10-03 : 00 : 34 : 05.661 의해 발생 : ERROR/AndroidRuntime (340) : android.opengl.GLSurfaceView.onResume (GLSurfaceView.java:512) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : android.SampleActivity.onResume ( SampleActivity.java : 28) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1150) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : android.app.Activity.performResume (Activity.java:3832) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) : android.app.ActivityThread.performResumeActivity (ActivityThread.java:2110) 10-03 00 : 34 : 05.661 : ERROR/AndroidRuntime (340) :. .. 12 more

+0

앱이 강제 종료되면 Logcat에서받은 스택 추적을 게시하십시오. –

답변

1

나는 다른 문제를 가지고 있었고, 다른 샘플 코드를 보면서 그것을 해결했다. 왜 차이가 나는지 확신 할 수 없지만 setRenderer에 대한 호출을 Activity 생성자로 옮겼습니다. 그러면이 문제가 해결 된 것 같습니다.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mGLView = new GLSurfaceView(this); 
    mGLView.setRenderer(new SampleRenderer()) 
    setContentView(mGLView); 
} 
0

1) 클래스의 이름과 일치하지 않는 SampleSurfaceView에 대한 귀하의 생성자 : 그래서에서 onCreate는 같은 것을 할 것이다.

2) ContentView을 설정하기 전에 SurfaceViewRenderer을 설정해야합니다.

다른 것들 중에서도 SampleSurfaceView을 사용하지 않는 것 같습니다. GLSurfaceView을 확장하려면 해당 확장 클래스를 사용해야합니다. 비공개 GLSurfaceView 및 모든 인스턴스를 SampleSurfaceView으로 전환하십시오. 현재 SampleSurfaceView 클래스는 사용되지 않습니다.

관련 문제