问题:mapabc 地图失效不能进行任何操作
原因:因为项目要用webview加载网页,网页中有视频要播放,要播放视频要手机要装flash插件,并在AndroidManifest.xml 中的application 节点时加硬件加速android:hardwareAccelerated="true",就因为加了硬件加速,使得mapabc地图任何操作都失效。为什么加了会冲突具体原因还没有追查.....
解决方法:把android:hardwareAccelerated="true" 从application节点中移到 需要播放视频的activity 节点下。
后续:太坑爹了,下午用同事一台没有root过的三星i9100来测试又发现了同样的问题,搞了好久才发现是 “强制进行GPU 渲染”被钩上了,取消掉就好了。后来想着intent到“开发者选项”中让用户取消掉,但是这让用户操作太不人性化了。
所以花了些时间查了一下关于Hardware Acceleration 的文档:http://developer.android.com/guide/topics/graphics/hardware-accel.html
发现从Android3.0 (API level11)开始,Android的2D显示管道被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作.
启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制产生影响.出现的问题经常是不可见的,也可能是异常,或错误地显示了像素.为了避免这些问题,Android提供了在以下各级别上启用或禁止硬加速的能力:
Application
Activity
Window
View
最后通过添加MapView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 代码 来禁止MapView的硬件加速功能。
这个bug出现一周了,之前有点忙就没花时间去研究,现在终于解决了;技术太差了,要好好学习才行。