Java 无法创建EGL上下文

Java 无法创建EGL上下文,java,android,webrtc,twilio,egl,Java,Android,Webrtc,Twilio,Egl,我在一些设备上遇到以下崩溃,代码在一些设备上运行良好。我不明白是哪部分代码造成了这次崩溃。 几天前它运转良好,突然间我看到了这次坠机。谁能告诉我是什么导致了这次车祸。请帮帮我 堆栈跟踪如下所示: java.lang.RuntimeException: java.lang.RuntimeException: Failed to create EGL context: 0x3003

我在一些设备上遇到以下崩溃,代码在一些设备上运行良好。我不明白是哪部分代码造成了这次崩溃。 几天前它运转良好,突然间我看到了这次坠机。谁能告诉我是什么导致了这次车祸。请帮帮我

堆栈跟踪如下所示:

java.lang.RuntimeException: java.lang.RuntimeException: Failed to create EGL context: 0x3003                                                                                at org.webrtc.EglBase14.createEglContext(EglBase14.java:260)
at org.webrtc.EglBase14.<init>(EglBase14.java:58)
at org.webrtc.EglBase.create(EglBase.java:86)
at org.webrtc.EglRenderer$3.run(EglRenderer.java:194)
at org.webrtc.ThreadUtils$5.call(ThreadUtils.java:208)
at org.webrtc.ThreadUtils$5.call(ThreadUtils.java:205)
at org.webrtc.ThreadUtils$4.run(ThreadUtils.java:182)
at android.os.Handler.handleCallback(Handler.java:742)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:193)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:205)
at org.webrtc.EglRenderer.init(EglRenderer.java:183)
at org.webrtc.SurfaceViewRenderer.init(SurfaceViewRenderer.java:101)
at org.webrtc.SurfaceViewRenderer.init(SurfaceViewRenderer.java:82)
at com.twilio.video.VideoView.setupRenderer(VideoView.java:158)
at com.twilio.video.VideoView.onAttachedToWindow(VideoView.java:91)
at android.view.View.dispatchAttachedToWindow(View.java:14538)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2844)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2844)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2844)
at android.view.ViewGroup.addViewInner(ViewGroup.java:4349)
at android.view.ViewGroup.addView(ViewGroup.java:4146)
at android.view.ViewGroup.addView(ViewGroup.java:4087)
at android.support.v7.widget.RecyclerView$5.addView(RecyclerView.java:676)
at android.support.v7.widget.ChildHelper.addView(ChildHelper.java:107)
at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:7399)
at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7357)
at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7345)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1459)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1408)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:580)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3374)
at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2901)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1112)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:632)
at android.view.View.measure(View.java:18811)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
at android.view.View.measure(View.java:18811)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
at android.view.View.measure(View.java:18811)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onM
java.lang.RuntimeException:java.lang.RuntimeException:未能在org.webrtc.EglBase14.createEglContext(EglBase14.java:260)上创建EGL上下文:0x3003
位于org.webrtc.EglBase14(EglBase14.java:58)
在org.webrtc.EglBase.create上(EglBase.java:86)
位于org.webrtc.EglRenderer$3.run(EglRenderer.java:194)
位于org.webrtc.ThreadUtils$5.call(ThreadUtils.java:208)
位于org.webrtc.ThreadUtils$5.call(ThreadUtils.java:205)
位于org.webrtc.ThreadUtils$4.run(ThreadUtils.java:182)
位于android.os.Handler.handleCallback(Handler.java:742)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:154)
运行(HandlerThread.java:61)
位于org.webrtc.ThreadUtils.invokeAtfront不间断地(ThreadUtils.java:193)
位于org.webrtc.ThreadUtils.invokeAtfront不间断地(ThreadUtils.java:205)
位于org.webrtc.EglRenderer.init(EglRenderer.java:183)
位于org.webrtc.surfaceviewrender.init(surfaceviewrender.java:101)
位于org.webrtc.surfaceviewrender.init(surfaceviewrender.java:82)
位于com.twilio.video.VideoView.setupRenderer(VideoView.java:158)
位于com.twilio.video.VideoView.onAttachedToWindow(VideoView.java:91)
在android.view.view.dispatchAttachedToWindow(view.java:14538)
在android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2844)
在android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2844)
在android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2844)
在android.view.ViewGroup.addViewInner(ViewGroup.java:4349)中
在android.view.ViewGroup.addView(ViewGroup.java:4146)
在android.view.ViewGroup.addView(ViewGroup.java:4087)中
位于android.support.v7.widget.RecyclerView$5.addView(RecyclerView.java:676)
位于android.support.v7.widget.ChildHelper.addView(ChildHelper.java:107)
在android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:7399)上
在android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7357)
在android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7345)
位于android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1459)
位于android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1408)
位于android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:580)
位于android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3374)
位于android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2901)
在android.view.view.measure(view.java:18811)
位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
位于android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
位于android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1112)
位于android.widget.LinearLayout.onMeasure(LinearLayout.java:632)
在android.view.view.measure(view.java:18811)
位于android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)上
在android.view.view.measure(view.java:18811)
位于android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)上
在android.view.view.measure(view.java:18811)
位于android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)上
在android.view.view.measure(view.java:18811)
位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
位于android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
位于android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
在android.view.view.measure(view.java:18811)
位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
位于android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
位于android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
在android.widget.LinearLayout.onM上
您可以检查

0x3003
EGL\u BAD\u ALLOC

这是众所周知的。有一个全局EGL上下文,如果您 在调试模式下重新加载应用程序包。这不会发生在发行版中 模式,因为此上下文将在 应用程序


问题与创建的上下文数量有关。多次创建egl上下文会在到达极限点时导致
EglBase.create()
方法崩溃。 确保您没有创建这么多EGLContext。我的设备上的限制似乎是30


根据WebRTC的文档,调用.release()应该可以解决这个问题,但不幸的是,它不能解决这个问题。

您找到了这个问题的答案吗?@aashitsah是的解决方案是避免创建多个egl上下文。