Android EGL API19罚款,但>;API 21获得错误3008
谢谢你的阅读 我将github项目GLRecorder用作库,并将其放在我的项目中进行录制 GLR记录器: 我可以在我的API19安卓手机上运行它,但我在API21到API25上运行它,它们都崩溃了 错误信息: E/libEGL:validate\u display:255错误3008(EGL\u BAD\u display)过程: com.example.chankim.vrcam,PID:5812 java.lang.RuntimeException:EGLCreateWindowsSurface:EGL错误:0x3008 在 com.research.GLRecorder.gles.EglCore.checkEglError(EglCore.java:209) 在 com.research.GLRecorder.gles.EglCore.CreateWindowsSurface(EglCore.java:72) 在 com.research.GLRecorder.gles.EglSurfaceBase.createWindowsSurface(EglSurfaceBase.java:64) 在 com.research.GLRecorder.gles.WindowSurface.(WindowSurface.java:41) 在 GLRecorder.GLRecorder.startEncoder(GLRecorder.java:234) 在 com.research.GLRecorder.GLRecorder.setRecordingEnabled(GLRecorder.java:147) 在 GLRecorder.GLRecorder.startRecording(GLRecorder.java:128) 在 com.example.chankim.vrcam.MainActivity.changeIcon(MainActivity.java:319) 在 com.example.chankim.vrcam.MainActivity$8.onClick(MainActivity.java:178) 在android.view.view.performClick上(view.java:5204) 在android.view.view$PerformClick.run(view.java:21153) 位于android.os.Handler.handleCallback(Handler.java:739) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5417) 位于java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 那么我该如何解决这个问题呢?我发现了我的问题。 在layout.xml中,我定义了一个GLSurfaceView来放置我的图像 如果我在主要活动中使用此代码Android EGL API19罚款,但>;API 21获得错误3008,android,opengl-es-2.0,egl,Android,Opengl Es 2.0,Egl,谢谢你的阅读 我将github项目GLRecorder用作库,并将其放在我的项目中进行录制 GLR记录器: 我可以在我的API19安卓手机上运行它,但我在API21到API25上运行它,它们都崩溃了 错误信息: E/libEGL:validate\u display:255错误3008(EGL\u BAD\u display)过程: com.example.chankim.vrcam,PID:5812 java.lang.RuntimeException:EGLCreateWindowsSurf
super.onCreate(savedInstanceState);
mDrawView = new Draw(getApplication());
setContentView(mDrawView);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button_start).setOnClickListener(this);
findViewById(R.id.button_end).setOnClickListener(this);
mDrawView = (Draw)findViewById(R.id.mDraw2);
应用程序将运行良好
mDrawView.queueEvent(new Runnable() {
@Override
public void run() {
GLRecorder.stopRecording();
}});
但如果我在主要活动中使用此代码
super.onCreate(savedInstanceState);
mDrawView = new Draw(getApplication());
setContentView(mDrawView);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button_start).setOnClickListener(this);
findViewById(R.id.button_end).setOnClickListener(this);
mDrawView = (Draw)findViewById(R.id.mDraw2);
它会崩溃的。
那怎么解决呢?我解决了这个问题
这是关于GL线程的问题
使用此代码,它将运行良好
mDrawView.queueEvent(new Runnable() {
@Override
public void run() {
GLRecorder.stopRecording();
}});