我的应用程序使用 Android Camera API(旧的)和 GLSurfaceView。
它适用于 90% 的设备(我实际上在 100 种不同的型号上对其进行了测试!!!)但它在 Nexus5X 和 Nexus6P 上崩溃。
我可以在 logcat 上看到以下错误:
W/Adreno-ES20: <core_glEGLImageTargetTexture2DOES:4550>: GL_INVALID_OPERATION
当我将 Nexus5X 崩溃报告发送到 google play 时,我看到的是:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
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();
(我需要将一半的项目放在这里以提供更多详细信息)。
谁能给我一个线索,问题出在哪里,或者我该如何解决?