Я пытаюсь получить широту и долготу показать свое текущее местоположение на карте Google, но я получаю эту ошибку:Невозможно начать деятельность ComponentInfo - LocationManager
03-04 18:00:50.785 13625-13625/com.example.thulio.googlemapstest W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40e0c960)
03-04 18:00:50.785 13625-13625/com.example.thulio.googlemapstest E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.thulio.googlemapstest/com.example.thulio.googlemapstest.MapPane}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
at android.app.ActivityThread.access$700(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5317)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.thulio.googlemapstest.MapPane.getCurrentLocation(MapPane.java:35)
at com.example.thulio.googlemapstest.MapPane.onCreate(MapPane.java:28)
at android.app.Activity.performCreate(Activity.java:5326)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
at android.app.ActivityThread.access$700(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5317)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Я просто пытаюсь чтобы получить текущее местоположение один раз и отобразить на карте.
MainActivity:
public class MapPane extends Activity{
private GoogleMap map;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map_pane);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
getCurrentLocation();
}
public void getCurrentLocation(){
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
LatLng USER_LOCATION = new LatLng(longitude, latitude);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(USER_LOCATION, 13);
map.animateCamera(update);
map.addMarker(new MarkerOptions().position(USER_LOCATION).title("USER LOCATION"));
}
}
В AndroidManifest:
...
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
...
Спасибо за помощь.
Всегда полезно помещать форму комментария рядом с строкой, которая вызывает условие нулевого указателя, чтобы сузить его, поскольку номера строк не совпадают с тем, что размещено. –
@JaySnayder Я думаю, проблема в getLastKnowLocation(), но я не знаю, как это исправить. –