[問題] 不同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