错误处理

来源:互联网 发布:私人订制软件 编辑:程序博客网 时间:2024/05/21 06:51

1、Set Android:baselineAligned=”false” on this element for better performance
如果LinearLayout被用于嵌套的layout空间计算,它的android:baselineAligned属性应该设置成false,以加速layout计算

2、This tag and its children can be replaced by one and a compound drawable
如果我们想用一个TextView和ImageView的组合,并不需要使用这两个组件,只要对TextView使用一个drawable就行了,例如android:drawableTop=”…..”

3、Missing contentDescription attribute on image
跟Image有关的空间需要一个描述,要解决这个问题的话加上一个空字符或者@string/App_name即可

4、This LinearLayout layout or its LinearLayout parent is possibly useless
在LinearLayout布局当中嵌套了一个子的LinearLayout布局,而在我的这个整个布局文件中是一最外层的LinearLayout为父控件进行整体布局的,从而造成这段布局代码重复了LinearLayout布局。所以只要把多余的LinearLayout去掉就可以了

5、Nested weights are bad for performance
在布局进行嵌套使用时,父布局与子布局都使用了android:layout_weight,但不是必须使用时,便会出现如题所示的警告信息。


一、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里加入false,因为很多自定义标题栏的教程里面,都会有一个设置theme的语句是使用了windowActionBar的,通过把这个改为false就可以避免这样的冲突
在activity里已经设置了title的theme了,结果在tab里面又设置了其他的theme(例如ViewPager)
当项目中导入了多个包,可能包之间的AndroidManifest里对theme的设置是不一样的,这样也会导致这个错误

四、Jar mismatch! Fix your depedencies
这个错误多数出现在一个项目中导入了多个包时,主要原因是,可能不同的包使用的jar是不一样的。拿我来说:

我当时使用的library1、library2和项目本身的android-support-v4.jar,就出现了这个错误,说我有3个包,无法识别该用哪一个。解决办法就是把这三个包的这个jar都统一了,所以网上有这样的做法:

把library的jar都换成项目的jar,然后就好了。但是我觉得在StackOverflow上看到的另一个方法更好:

首先对你的项目使用Android Tools里的Add Support Library,然后把所有的android-support-v4.jar都去掉,每一个项目或者Library都在build path menu里add external jar或者在Project Properties->Android->Library->Add…里添加jar,这样就能保证包的统一了

五、ClassNotFoundException

这个错误可能是因为包没导入完全,可能是因为AndroidManifest上没写好要启动的类的名字

0 0