我的代码如下:
Geocoder geocoder = new Geocoder(this,Locale.UK );
List<Address> addresses = null;
Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show();
try {
Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show();
addresses = geocoder.getFromLocationName(
"Camden", 1);
if (addresses.size() > 0) {
geopoint = new GeoPoint(
(int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
//Animating on display
mapcontroller.animateTo(geopoint);
mapcontroller.setZoom(5);
mapview.invalidate();
}
} catch (IOException io) {
// TODO Auto-generated catch block
Toast.makeText(displaybyName.this, "Connection Error", Toast.LENGTH_SHORT).show();
}
if (addresses.size() > 0) {
geopoint = new GeoPoint(
(int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
//Animating on display
mapcontroller.animateTo(geopoint);
mapcontroller.setZoom(5);
mapview.invalidate();
}
然而,该应用每次都会崩溃。地理编码器没有返回任何纬度/长度。
代码是否有任何问题... plz plz advise。
答案 0 :(得分:1)
仔细检查
addresses = geocoder.getFromLocationName("Camden", 1);
返回的内容不是null
- 否则:以下行会引发NullPointerException
进一步阅读
答案 1 :(得分:0)
有Android版本的问题,因为地理编码器没有核心的Android框架,但这对新旧版本如1.6,2.0和API级别15的工作正常尝试这些首先它肯定会工作但仍然坚持只是试试你的 使用JSON自己的地理编码器类。