0
在將字符串地址轉換爲LatLng後,我正在使用下面的代碼嘗試將標記添加到位置。但該應用程序總是崩潰與NPE錯誤。我試過調試,它顯示了由評論顯示的錯誤。我確認沒有使用那裏的變量爲空。任何人有任何想法我做錯了什麼?使用映射片段時總是返回NPE
public LatLng getLocationFromAddress(String strAddress) {
Geocoder coder = new Geocoder(this);
List<Address> address;
LatLng p1 = null;
try {
address = coder.getFromLocationName(strAddress, 5);
if (address != null && address.size() > 0) {
Address location = address.get(0);
p1 = new LatLng(location.getLatitude(), location.getLongitude());
} else {
p1 = new LatLng(19.111258, 72.908313);
}
} catch (IOException e) {
e.printStackTrace();
return p1;
}
return p1;
}
public void prepareMap() {
final LatLng REST = getLocationFromAddress(restAddress + ","
+ restLocation);
int zoomNiveau = 15;
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
map.addMarker(new MarkerOptions().position(REST).title(restName));//error points here
map.moveCamera(CameraUpdateFactory.newLatLngZoom(REST, zoomNiveau));
}
如果沒有空變量就不會有錯誤。請在錯誤行之前記錄'map','REST'和'restName'。你問題中的輸出會很好。 – Simas 2014-09-03 19:03:53