我的应用使用Android Camera API(旧版)和GLSurfaceView。
它可以在90%的设备上运行(我实际上在100种不同的型号上进行了测试!!!)但它在Nexus5X和Nexus6P上崩溃了。
我可以在logcat上看到以下错误:
W/Adreno-ES20: <core_glEGLImageTargetTexture2DOES:4550>: GL_INVALID_OPERATION
当我将Nexus5X崩溃报告发送到谷歌播放时,这就是我所看到的:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/bullhead/bullhead:6.0.1/MMB29P/2473553:user/release-keys'
Revision: 'rev_1.0'
ABI: 'arm'
pid: 6443, tid: 6530, name: GLThread 68 >>> com.my.app <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3b8
r0 00000010 r1 00000000 r2 00000000 r3 00000002
r4 00001fbc r5 80000000 r6 00000010 r7 00000000
r8 00000000 r9 e11df2e0 sl 00000001 fp e11dd000
ip de984270 sp e1844e3c lr e9d4dbbd pc e9dd6cf4 cpsr 80070030
backtrace:
#00 pc 001b1cf4 /vendor/lib/egl/libGLESv2_adreno.so (EsxGfxMem::UpdateTimestampBucketId(EsxContext const*, unsigned int, EsxAccessType)+27)
#01 pc 00128bb9 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::BucketRenderingCmds()+592)
#02 pc 000dc2d9 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::BucketClearCmds(unsigned int*)+72)
#03 pc 000dff89 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::ClearDirectly(EsxBltFill*, EsxColorClearData*, EsxBltDepthFill*, EsxBltDepthFill*)+3596)
#04 pc 000e034d /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::ClearInternal(EsxBltFill*, EsxColorClearData*, EsxBltDepthFill*, EsxBltDepthFill*)+80)
#05 pc 000e05ab /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::Clear(unsigned int, unsigned int, unsigned int, EsxClearValues*)+446)
#06 pc 000c7f83 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::GlClear(unsigned int)+58)
#07 pc 72104d39 /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x1ec9000)
崩溃本身发生在glFinish();
上(我需要将我的一半项目放在这里以提供更多细节)。
有人能告诉我问题在哪里或我该如何解决?