在Android项目开发时,会遇到很多种类的程序闪退,导致APP不能正常使用,大大影响用户体验。结合本人的项目开发经验和教训,对android原生开发中常会出现的crash做一个总结。
(一)空指针
空指针恐怕是android项目开发中最容易出现crash的情况了。比如要获取某个对象的属性或方法,当这个对象为null的时候,如果没有事前判断和针对性处理,就会出现程序的闪退。此时我们看log信息时候一般会发现带有NullPointException标志的关键错误信息。这就要求我们在操作对象时进行非空判断,比如要获取对象Person的名字的时候。我们可以这样做
private String getName(Person person){
if(person!=null){
return person.getName();
}
return "";
}
另外,还有很多其他情况也会导致空指针。比如在JSON数据解析时,我们取一个JSONObject对象中的某一个属性,当这个属性不存在或者为null的时候,没有判断的情况下也会引起空指针引起的crash。这种情况下我们可以写一个方法,在出现异常时候及时捕捉并返回一个默认的值。
public String getJsonStringValue(String key, String defaultValue, JSONObject data) {
try {