我希望有人能带领我朝着正确的方向前进。今天我注意到我的应用程序在尝试使用谷歌地图时停止工作。我的应用程序完美无瑕。我没有在代码中更新任何内容。它只是停止工作。
这是调试:
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference
at se.xflash.tidsboken.CreateNewJob.onMapReady(CreateNewJob.java:725)
at com.google.android.gms.maps.MapFragment$zza$1.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzl$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:387)
at com.google.android.gms.maps.internal.v$a$a.a(:com.google.android.gms.alldynamite:82)
at maps.ei.bu$6.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5514)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
我不明白为什么我突然得到一个NullPointerException,它没有任何意义!
这是一个代码片段,它会抱怨。
public void onMapReady(GoogleMap map) {
DatabaseHandlerSettings db = new DatabaseHandlerSettings(getActivity());
PersonInfoDatabase info = db.getContact(1);
String adressInfo = info.getAdress();
String ortInfo = info.getOrt();
String adress = (adressInfo + ", " + ortInfo);
Geocoder geocoder = new Geocoder(getActivity(), Locale.getDefault());
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocationName(adress, 1);
} catch (IOException e) {
e.printStackTrace();
}
Address address = addresses.get(0);
double longitudeStart = address.getLongitude();
double latitudeStart = address.getLatitude();
LatLng location = new LatLng(latitudeStart, longitudeStart);
map.setMyLocationEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 12));
我的意思是,我的应用程序如何能够突然停止运作?它在市场上。 如果你不明白我的意思,我明白。
答案 0 :(得分:1)
关注您的代码:
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocationName(adress, 1);
} catch (IOException e) {
e.printStackTrace();
}
Address address = addresses.get(0);
如果 IOException - 地址列表仍然是 null 。所以调用 addresses.get(0)会导致 NullPointerException 。