目前发现这个闪退只发生在某些16、17年比较老的机型上:vivo y66(..)、vivo x9(..)、vivo y79(..)、oppo r9s、oppo a77(..)等等。
解决方案:Application/Activity的硬件加速去掉,改为使用时开启硬件加速。比如:
Window:运行时对窗口设置flag使其使用硬件加速
window.setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED)
View:运行时对单个View设置层级类型使其停用硬件加速
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
报错如下:
Adreno-GSL: <sharedmem_gpuobj_alloc:2021>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
Adreno-GSL: <gsl_memory_alloc_pure:2135>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
解决特定机型应用闪退问题
本文针对vivo及OPPO部分旧型号手机上的应用程序闪退现象提供了有效的解决方案。通过调整Activity的硬件加速配置,例如在运行时设置Window的FLAG_HARDWARE_ACCELERATED标志位或者更改View的layerType为LAYER_TYPE_SOFTWARE,可以有效避免闪退问题。
6230





