2015-02-03 1 views
9

Я пытаюсь использовать TextureView для видео, и он много вредит при попытке SurfaceTexture.detachFromGLContext.Android SurfaceTexture.detachFromGLContext Ошибка во время detachFromGLContext

Я ничего не нашел в Google, кто-нибудь знает, что это может быть?

Благодаря

java.lang.RuntimeException: Error during detachFromGLContext (see logcat for details) 
     at android.graphics.SurfaceTexture.detachFromGLContext(SurfaceTexture.java:195) 
     at android.view.TextureView.destroySurface(TextureView.java:243) 
     at android.view.TextureView.destroyHardwareResources(TextureView.java:355) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2311) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318) 
     at android.view.HardwareRenderer$Gl20Renderer.access$800(HardwareRenderer.java:1895) 
     at android.view.HardwareRenderer$Gl20Renderer$2.run(HardwareRenderer.java:2303) 
     at android.view.HardwareRenderer$Gl20Renderer.safelyRun(HardwareRenderer.java:2254) 
     at android.view.HardwareRenderer$Gl20Renderer.destroyHardwareResources(HardwareRenderer.java:2297) 
     at android.view.ViewRootImpl.destroyHardwareResources(ViewRootImpl.java:853) 
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1534) 
     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249) 
     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6585) 
     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803) 
     at android.view.Choreographer.doCallbacks(Choreographer.java:603) 
     at android.view.Choreographer.doFrame(Choreographer.java:573) 
     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5586) 
     at java.lang.reflect.Method.invokeNative(Method.java) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
     at dalvik.system.NativeStart.main(NativeStart.java) 
+0

Исключение указывает 'see logcat for details', что указывает на наличие сообщений в logcat выше или ниже исключения. Вы должны найти эти сообщения и включить их в свой вопрос. – fadden

+5

Я не могу воспроизвести это локально, это происходит только в производстве. –

+0

У меня такая же проблема. Если кто-то решил это, сообщите мне –

ответ

0

может быть, вы должны вызвать этот метод detachFromGLContext() от метода GLThread.The queueEvent() в GLSurfaceView может сделать эту работу.

/** 
* Queue a runnable to be run on the GL rendering thread. This can be used 
* to communicate with the Renderer on the rendering thread. 
* Must not be called before a renderer has been set. 
* @param r the runnable to be run on the GL rendering thread. 
*/ 
public void queueEvent(Runnable r) { 
    mGLThread.queueEvent(r); 
} 
+0

Проблема видна с помощью TextureView, а не SurfaceView или GLSurfaceView. Хотя этот ответ имеет некоторое значение, касающееся необходимости вызова в потоке GL. Дело в том, что Android делает звонок для detachFromGLContext, поэтому трудно определить, есть ли он в правильной теме. –