[问题] 不同device对bug的反应不同?

楼主: htury (冰点)   2014-10-09 09:25:20
想请问大家如何针对不同的devices 来写程式甚至debug
目前遇到的问题是用google map,确定location 的provider的code我是写在下面的
结果红米,HTC,google nexus 5都正常,因为这是手边现有的测试机
但在alpha测试 ,使用者用sony Xperia Z 就死在黄色字的那边,整个APP就crash,传进NullPointerException
现在想到的解法是任何指标要被method作用时,都先判断是不是null,在做下一步
以避免APP crash掉
各位先进有更好写法,可以指教一下~~
Location netlocation =
locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Location gpslocation =
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (gpslocation != null && gpslocation.getTime() > netlocation.getTime()) {
location = gpslocation;
} else {
location = netlocation;
}
作者: ckvir (ckvir)   2014-10-09 12:39:00
这样写没错阿,或是在使用getlastknownlocation的时候就判断function回传值正不正确
作者: JULONE780701 (亚)   2014-10-09 13:10:00
是要这样写没错
楼主: htury (冰点)   2014-10-09 13:43:00
我一开始是这样写,手边有上述测试机也没问题甚至位置关掉,app都不会crash直到开alpha版,给人测sony没开位置,app就直接crash只是想避免runtime时的app crash,偏偏device不同bug呈现的结果也不同,害我想没足够的device怎么debug
作者: ckvir (ckvir)   2014-10-09 14:21:00
可以加try catch试试
作者: doom3 (ⓓⓞⓞⓜ③ )   2014-10-11 20:04:00
没开过GPS的新机会拿到NULL

Links booklink

Contact Us: admin [ a t ] ucptt.com