2016-12-23 10 views
-3

Благодарим вас за чтение!EGL API19 отлично, но> API 21 получил ошибку 3008

Я использую проект gigub GLRecorder как библиотеку и помещаю его в свой проект для записи.

GLRecorder: https://github.com/lokii/GLRecorder

Я мог бы запустить его на моем апи 19 андроида phone.But Я запустить его на апи 21 УПУ 25, все они получили сбой!

Информация Ошибка:

E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY) Process: com.example.chankim.vrcam, PID: 5812 java.lang.RuntimeException: eglCreateWindowSurface: EGL error: 0x3008 at com.research.GLRecorder.gles.EglCore.checkEglError(EglCore.java:209) at com.research.GLRecorder.gles.EglCore.createWindowSurface(EglCore.java:72) at com.research.GLRecorder.gles.EglSurfaceBase.createWindowSurface(EglSurfaceBase.java:64) at com.research.GLRecorder.gles.WindowSurface.(WindowSurface.java:41) at com.research.GLRecorder.GLRecorder.startEncoder(GLRecorder.java:234) at com.research.GLRecorder.GLRecorder.setRecordingEnabled(GLRecorder.java:147) at com.research.GLRecorder.GLRecorder.startRecording(GLRecorder.java:128) at com.example.chankim.vrcam.MainActivity.changeIcon(MainActivity.java:319) at com.example.chankim.vrcam.MainActivity$8.onClick(MainActivity.java:178) at android.view.View.performClick(View.java:5204) at android.view.View$PerformClick.run(View.java:21153) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

так, как я мог решить эту проблему?

ответ

0

Я решил это!

Это проблема с резьбой GL.

Используйте этот код, оно будет работать нормально!

   mDrawView.queueEvent(new Runnable() { 
       @Override 
       public void run() { 
        GLRecorder.stopRecording(); 
       }}); 
0

Я нашел свою проблему. В layout.xml, я определил GLSurfaceView поставить мое изображение в.

Если бы я использовал этот код в основной деятельности

super.onCreate(savedInstanceState); 
    mDrawView = new Draw(getApplication()); 
    setContentView(mDrawView); 

App будет работать нормально!

Но если бы я использовал этот код в основной деятельности

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); 

Это приведет к краху. Итак, как его решить?