Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Galaxy S2上的ANR纹理查看(GPU驱动程序问题?)_Android_Opengl Es_Galaxy_Glsurfaceview_Android Anr Dialog - Fatal编程技术网

Android Galaxy S2上的ANR纹理查看(GPU驱动程序问题?)

Android Galaxy S2上的ANR纹理查看(GPU驱动程序问题?),android,opengl-es,galaxy,glsurfaceview,android-anr-dialog,Android,Opengl Es,Galaxy,Glsurfaceview,Android Anr Dialog,我在播放opengl视频流的ListView中有多个TextureView。该代码在Nexus4(4.2)、GalaxyS3(4.1)和HTC One(4.0.3)上运行良好。但是,当opengl线程运行(死锁)时,当我尝试在S2(SPH-D710VMUB,Virgin Mobile,4.0.4)上滚动listview时,会发生ANR。下面提供了ANR跟踪(isHardwareAccelerated()=listview上的true) 还请注意,如果使用GLSurfaceView处理相同的ope

我在播放opengl视频流的ListView中有多个TextureView。该代码在Nexus4(4.2)、GalaxyS3(4.1)和HTC One(4.0.3)上运行良好。但是,当opengl线程运行(死锁)时,当我尝试在S2(SPH-D710VMUB,Virgin Mobile,4.0.4)上滚动listview时,会发生ANR。下面提供了ANR跟踪(isHardwareAccelerated()=listview上的true)

还请注意,如果使用GLSurfaceView处理相同的openGL代码,则其工作正常,但Z顺序会使ICS设备的同一窗口中的多个SURFACeView出错。GLTextureView通过指令进行转换

编辑1:尝试了GLTextureView的另一个实现,能够找到准确的行。 “EGLSWAPBuffer(EGL显示,EGL表面);”由于某种原因将在S2上阻塞

有人注意到: glFinish();这是需要的。有什么想法吗

编辑2:添加glFinish()或eglWaitGL()没有帮助:(怀疑他们立即返回,不管

编辑3:使用以下方法复制它: 看

编辑4:如果有人想知道,这是我对GLTextureView()的实现,它还包括FFMpeg播放内容

编辑5:这可能是高通Adreno 200系列的一个错误:

DALVIK线程:
(互斥体:tll=0 tsl=0 tscl=0 ghl=0)
“主”优先级=5 tid=1本机
|group=“main”scont=1 dsCount=0 obj=0x40c30460 self=0x129c0
|sysTid=21854 nice=0 sched=0/0 cgrp=default handle=1074746664
|schedstat=(434522015 268952863 603)utm=34 stm=9 core=0
在android.view.GLES20Canvas.nUpdateTextureLayer中(本机方法)
位于android.view.GLES20TextureLayer.update(GLES20TextureLayer.java:77)
在android.view.TextureView.applyUpdate上(TextureView.java:388)
在android.view.TextureView.draw(TextureView.java:276)
在android.view.view.getDisplayList中(view.java:10586)
位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
位于android.view.view.getDisplayList(view.java:10549)
位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
位于android.view.view.getDisplayList(view.java:10549)
位于android.view.ViewGroup.drawChild(ViewGroup.java:2850)
在android.widget.ListView.drawChild(ListView.java:3225)上
位于android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
位于android.widget.AbsListView.dispatchDraw(AbsListView.java:2271)
位于android.widget.ListView.dispatchDraw(ListView.java:3220)
在android.view.view.draw(view.java:11150)
在android.widget.AbsListView.draw(AbsListView.java:3728)
在android.view.view.getDisplayList中(view.java:10586)
位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
位于android.view.view.getDisplayList(view.java:10549)
位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
位于android.view.view.getDisplayList(view.java:10549)
位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
位于android.view.view.getDisplayList(view.java:10549)
位于android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:842)
在android.view.ViewRootImpl.draw上(ViewRootImpl.java:2011)
在android.view.ViewRootImpl.performTraversals上(ViewRootImpl.java:1735)
在android.view.ViewRootImpl.handleMessage上(ViewRootImpl.java:2547)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4507)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
在dalvik.system.NativeStart.main(本机方法)
“异步任务#2”优先级=5 tid=19等待
|group=“main”scont=1 dsCount=0 obj=0x415cdf00 self=0x3aa178
|sysTid=8059 nice=10 sched=0/0 cgrp=bg\u非交互式句柄=4722816
|schedstat=(369083 125724959 3)utm=0 stm=0核心=0
在java.lang.Object.wait(本机方法)
-等待tid=19(AsyncTask#2)持有的(java.lang.VMThread)
在java.lang.Thread.parkFor(Thread.java:1231)
在sun.misc.Unsafe.park(Unsafe.java:323)
位于java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
位于java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
位于java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
位于java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)
“异步任务#1”优先级=5 tid=13等待
|group=“main”scont=1 dsCount=0 obj=0x415ca7d8 self=0x30c370
|sysTid=8050 nice=10 sched=0/0 cgrp=bg\u非交互式句柄=3105360
|schedstat=(448085 5989790 7)utm=0 stm=0 core=1
在java.lang.Object.wait(本机方法)
-等待tid=13(异步任务#1)持有的(java.lang.VMThread)
在java.lang.Thread.parkFor(Thread.java:1231)
在sun.misc.Unsafe.park(Unsafe.java:323)
位于java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
位于java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
位于java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
位于java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
位于java.util.concurrent.ThreadPo
        DALVIK THREADS:
        (mutexes: tll=0 tsl=0 tscl=0 ghl=0)
        "main" prio=5 tid=1 NATIVE
          | group="main" sCount=1 dsCount=0 obj=0x40c30460 self=0x129c0
          | sysTid=21854 nice=0 sched=0/0 cgrp=default handle=1074746664
          | schedstat=( 434522015 268952863 603 ) utm=34 stm=9 core=0
          at android.view.GLES20Canvas.nUpdateTextureLayer(Native Method)
          at android.view.GLES20TextureLayer.update(GLES20TextureLayer.java:77)
          at android.view.TextureView.applyUpdate(TextureView.java:388)
          at android.view.TextureView.draw(TextureView.java:276)
          at android.view.View.getDisplayList(View.java:10586)
          at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
          at android.view.View.getDisplayList(View.java:10549)
          at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
          at android.view.View.getDisplayList(View.java:10549)
          at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
          at android.widget.ListView.drawChild(ListView.java:3225)
          at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
          at android.widget.AbsListView.dispatchDraw(AbsListView.java:2271)
          at android.widget.ListView.dispatchDraw(ListView.java:3220)
          at android.view.View.draw(View.java:11150)
          at android.widget.AbsListView.draw(AbsListView.java:3728)
          at android.view.View.getDisplayList(View.java:10586)
          at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
          at android.view.View.getDisplayList(View.java:10549)
          at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
          at android.view.View.getDisplayList(View.java:10549)
          at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
          at android.view.View.getDisplayList(View.java:10549)
          at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:842)
          at android.view.ViewRootImpl.draw(ViewRootImpl.java:2011)
          at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1735)
          at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2547)
          at android.os.Handler.dispatchMessage(Handler.java:99)
          at android.os.Looper.loop(Looper.java:137)
          at android.app.ActivityThread.main(ActivityThread.java:4507)
          at java.lang.reflect.Method.invokeNative(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:511)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
          at dalvik.system.NativeStart.main(Native Method)


    "AsyncTask #2" prio=5 tid=19 WAIT
      | group="main" sCount=1 dsCount=0 obj=0x415cdf00 self=0x3aa178
      | sysTid=8059 nice=10 sched=0/0 cgrp=bg_non_interactive handle=4722816
      | schedstat=( 369083 125724959 3 ) utm=0 stm=0 core=0
      at java.lang.Object.wait(Native Method)
      - waiting on <0x415ce020> (a java.lang.VMThread) held by tid=19 (AsyncTask #2)
      at java.lang.Thread.parkFor(Thread.java:1231)
      at sun.misc.Unsafe.park(Unsafe.java:323)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
      at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
      at java.lang.Thread.run(Thread.java:856)


    "AsyncTask #1" prio=5 tid=13 WAIT
      | group="main" sCount=1 dsCount=0 obj=0x415ca7d8 self=0x30c370
      | sysTid=8050 nice=10 sched=0/0 cgrp=bg_non_interactive handle=3105360
      | schedstat=( 448085 5989790 7 ) utm=0 stm=0 core=1
      at java.lang.Object.wait(Native Method)
      - waiting on <0x415ca970> (a java.lang.VMThread) held by tid=13 (AsyncTask #1)
      at java.lang.Thread.parkFor(Thread.java:1231)
      at sun.misc.Unsafe.park(Unsafe.java:323)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
      at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
      at java.lang.Thread.run(Thread.java:856)

    "GLThread 320" prio=5 tid=12 NATIVE
      | group="main" sCount=1 dsCount=0 obj=0x41535368 self=0x2f7308
      | sysTid=8049 nice=0 sched=0/0 cgrp=default handle=2690528
      | schedstat=( 1744387397 1741438396 2048 ) utm=169 stm=5 core=1
      at com.google.android.gles_jni.EGLImpl.eglSwapBuffers(Native Method)
ndroid.player.GLTextureView$GLThread.run(GLTextureView.java:1261)

"Binder Thread #2" prio=5 tid=10 NATIVE
  | group="main" sCount=1 dsCount=0 obj=0x4150bfd8 self=0x217e08
  | sysTid=8038 nice=0 sched=0/0 cgrp=default handle=2155984
  | schedstat=( 1496167 16950375 10 ) utm=0 stm=0 core=0
  at dalvik.system.NativeStart.run(Native Method)

"Binder Thread #1" prio=5 tid=9 NATIVE
  | group="main" sCount=1 dsCount=0 obj=0x414fb130 self=0x1bd740
  | sysTid=8037 nice=0 sched=0/0 cgrp=default handle=1595520
  | schedstat=( 2633041 25123960 10 ) utm=0 stm=0 core=0
  at dalvik.system.NativeStart.run(Native Method)

"FinalizerWatchdogDaemon" daemon prio=5 tid=8 TIMED_WAIT
  | group="main" sCount=1 dsCount=0 obj=0x414f7490 self=0x182a50
  | sysTid=8036 nice=0 sched=0/0 cgrp=default handle=1433120
  | schedstat=( 288708 6619500 5 ) utm=0 stm=0 core=0
  at java.lang.VMThread.sleep(Native Method)
  at java.lang.Thread.sleep(Thread.java:1031)
  at java.lang.Thread.sleep(Thread.java:1013)
  at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:213)
  at java.lang.Thread.run(Thread.java:856)

"FinalizerDaemon" daemon prio=5 tid=7 WAIT
  | group="main" sCount=1 dsCount=0 obj=0x414f7338 self=0x105230
  | sysTid=8035 nice=0 sched=0/0 cgrp=default handle=1662112
  | schedstat=( 3763081 5489124 25 ) utm=0 stm=0 core=1
  at java.lang.Object.wait(Native Method)
  - waiting on <0x40c265d0> (a java.lang.ref.ReferenceQueue)
  at java.lang.Object.wait(Object.java:401)
  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
  at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
  at java.lang.Thread.run(Thread.java:856)

"ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT
  | group="main" sCount=1 dsCount=0 obj=0x414f71d0 self=0xfa1f0
  | sysTid=8034 nice=0 sched=0/0 cgrp=default handle=1662016
  | schedstat=( 1831625 1206249 33 ) utm=0 stm=0 core=1
  at java.lang.Object.wait(Native Method)
  - waiting on <0x40c264f8> 
  at java.lang.Object.wait(Object.java:364)
  at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:128)
  at java.lang.Thread.run(Thread.java:856)

"Compiler" daemon prio=5 tid=5 VMWAIT
  | group="system" sCount=1 dsCount=0 obj=0x414f70e0 self=0x1b8688
  | sysTid=8033 nice=0 sched=0/0 cgrp=default handle=747976
  | schedstat=( 182108462 246633083 1197 ) utm=11 stm=7 core=1
  at dalvik.system.NativeStart.run(Native Method)

"JDWP" daemon prio=5 tid=4 VMWAIT
  | group="system" sCount=1 dsCount=0 obj=0x414f6ff8 self=0x206680
  | sysTid=8032 nice=0 sched=0/0 cgrp=default handle=1450968
  | schedstat=( 1964583 1505832 16 ) utm=0 stm=0 core=1
  at dalvik.system.NativeStart.run(Native Method)

"Signal Catcher" daemon prio=5 tid=3 RUNNABLE
  | group="system" sCount=0 dsCount=0 obj=0x414f6f00 self=0x1b7dd8
  | sysTid=8031 nice=0 sched=0/0 cgrp=default handle=1660128
  | schedstat=( 4634792 2711334 6 ) utm=0 stm=0 core=0
  at dalvik.system.NativeStart.run(Native Method)

"GC" daemon prio=5 tid=2 VMWAIT
  | group="system" sCount=1 dsCount=0 obj=0x414f6e20 self=0x20adb8
  | sysTid=8028 nice=0 sched=0/0 cgrp=default handle=1365944
  | schedstat=( 132084797 114875290 96 ) utm=10 stm=2 core=1
  at dalvik.system.NativeStart.run(Native Method)