由于是接收别人做的项目,而这个闪退现象也只是偶尔出现,但是一般是出现在输入字符的情况比较多,出现的位置还不确定,查了很久,查的想死。
百度完全不行,只好谷歌翻墙了。
谷歌了很久,今天看到了这个帖子,感觉跟我的问题很像,就试了下,把硬件加速给禁止了,现在还在测试中,先记录下。
https://forums.adobe.com/message/6243025
==============================================================================================
又经过一段时间的查找资料,发现,可能的情况有:
1.有资源被引用了,但是在未知的情况下被释放了,但是该引用报错。
很大原因是因为bitmap被回收了,但是还有地方有引用这个图片
https://code.google.com/p/android/issues/detail?id=14498
2.怀疑是硬件加速导致的问题。 经过分析发现使用了比较复杂的自定义View
,可能会导致硬件加速渲染出错。
所以,可以在指定的View上关闭硬件加速:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
或者使用android:layerType="software"
来关闭硬件加速:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="2dp"
android:layerType="software"
android:paddingRight="2dp" >
还有就是经常报这个错误:GL error from OpenGLRenderer: 0x502,OpenGLRenderer GL_INVALID_OPERATION。看着真是着急。也是跟硬件加速有关的。
就可以解决问题了。至少我的项目中修改后,暂时还没有出现闪退现象了。
贴下错误日志:
还有这种情况,也是类似的: