Android常见错误处理(二)
考试月非常忙,终于考完试可以继续写代码学习了……还望各位小伙伴多多指教哈~
一、java.lang.OutOfMemoryError
- 对于JAVA来说,虚拟机上用于显示图片的堆只有64MB,在安卓里,每一个应用大约只有16MB的内存(参考training/displaying-bitmaps里)。也就是说,一旦我们使用类似于Bitmap这样的类去加载一张图片,很有可能就会把这64MB的堆给占满了。此外,如果对象还存在一个引用,这个对象仍然会存在于堆中,JAVA的垃圾回收机制是不会处理他们的。在这种情况下,你需要用一些工具去评估你的项目必须使用的图片到底需要多大的堆空间(静态),然后去修改这个堆的大小,让它能够容纳你需要的图片。
- 不要使用类似于recycle()这样的方法,如1所说,这样的方法并不能改变这样的的错误(引用还在)
- 代码里可能有死循环,重复地创建对象实体
- 在能使用低像素图片时优先使用低像素照片,而且避免优先选择加载高像素图片(高像素图片占用内存显著多于低像素图片)
二、图片无法充满ImageView
这个解决办法其实蛮简单的,使用ImageView的setScaleType()方法,参数选择fitXY.。如果觉得这样会使图片变形,就是用centerCrop参数
三、RuntimeError:You cannot combine custom titles with other title features
这个错误是说,你不能混合使用多个标题风格,解决方法有下面几种:
- 所有标题风格的设置都在AndroidManifest上用android:theme=""设置,至于标题的风格就自己用XML实现好呗
- 在styles.xml里加入<item name="android:windowActionBar">false</item>,因为很多自定义标题栏的教程里面,都会有一个设置theme的语句是使用了windowActionBar的,通过把这个改为false就可以避免这样的冲突
- 在activity里已经设置了title的theme了,结果在tab里面又设置了其他的theme(例如ViewPager)
- 当项目中导入了多个包,可能包之间的AndroidManifest里对theme的设置是不一样的,这样也会导致这个错误
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。