我正在我的应用程序上开发一个“类似Gallery”的功能,我使用Viewpager来执行此操作。几乎所有手机都可以正常使用。
但是,当我在XiaoMi5上运行时,它会导致SIGSEGV。下面是日志信息。
07-15 14:36:59.451 5709-6037/com.abc E/OpenGLRenderer: resultIndex is -1, the polygon must be invalid!
07-15 14:36:59.452 5709-6037/com.abc A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x592 in tid 6037 (hwuiTask1)
07-15 14:36:59.528 730-730/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-15 14:36:59.528 730-730/? A/DEBUG: Build fingerprint: 'Xiaomi/gemini/gemini:6.0/MRA58K/V7.3.4.0.MAACNDD:user/release-keys'
07-15 14:36:59.529 730-730/? A/DEBUG: Revision: '0'
07-15 14:36:59.529 730-730/? A/DEBUG: ABI: 'arm'
07-15 14:36:59.530 730-730/? A/DEBUG: pid: 5709, tid: 6037, name: hwuiTask1 >>> com.abc <<<
07-15 14:36:59.530 730-730/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x592
07-15 14:36:59.573 730-730/? A/DEBUG: r0 000000b2 r1 000000b3 r2 00000002 r3 000000b2
07-15 14:36:59.573 730-730/? A/DEBUG: r4 000000b3 r5 000000b1 r6 00000016 r7 d818ff38
07-15 14:36:59.573 730-730/? A/DEBUG: r8 d8190270 r9 000000af sl d818f5f8 fp 00000023
07-15 14:36:59.573 730-730/? A/DEBUG: ip 00000589 sp 00000000 lr f5e9a55b pc f5e9a3c2 cpsr 000f0030
07-15 14:36:59.580 730-730/? A/DEBUG: backtrace:
07-15 14:36:59.581 730-730/? A/DEBUG: #00 pc 000563c2 /system/lib/libhwui.so
07-15 14:36:59.581 730-730/? A/DEBUG: #01 pc 00057441 /system/lib/libhwui.so
07-15 14:36:59.581 730-730/? A/DEBUG: #02 pc 00051ff1 /system/lib/libhwui.so
07-15 14:36:59.581 730-730/? A/DEBUG: #03 pc 00058481 /system/lib/libhwui.so
07-15 14:36:59.581 730-730/? A/DEBUG: #04 pc 0001f1f1 /system/lib/libhwui.so
07-15 14:36:59.581 730-730/? A/DEBUG: #05 pc 00010115 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
07-15 14:36:59.581 730-730/? A/DEBUG: #06 pc 0005e22b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+70)
07-15 14:36:59.581 730-730/? A/DEBUG: #07 pc 0003f9e3 /system/lib/libc.so (__pthread_start(void*)+30)
07-15 14:36:59.581 730-730/? A/DEBUG: #08 pc 00019fe5 /system/lib/libc.so (__start_thread+6)
07-15 14:37:00.449 730-730/? A/DEBUG: Tombstone written to: /data/tombstones/tombstone_07
07-15 14:37:00.449 730-730/? E/DEBUG: AM write failed: Broken pipe
07-15 14:37:00.472 3290-4249/? E/octvm_klo: read: Unexpected EOF!
任何人都可以帮助我,非常感谢。
答案 0 :(得分:0)
致命信号11( SIGSEGV )这可能是由于本机级别的某些内存管理问题而出现的。将图层类型设置为 View.LAYER_TYPE_SOFTWARE 将禁用硬件加速,您可以找到有关此here的更多信息。禁用可以降低性能但是根据您加载到viewpager中的内容,它可能会也可能不会显示。
然而,禁用硬件加速的副作用是某些内存管理不是在本机级别完成,因此在那里出错的可能性更小。
但这样做并不能解决它只是避免它的问题。问题可能是 OOM 情况,因此我建议您使用内存分析器( Android Studio&gt; Android Monitor标签&gt;监视器&gt;内存)等工具分析您的内存使用情况。其他可能的原因可能是,如果您使用一些特殊的本机库,它们可以使用本机疯狂的东西。