-1

For Android using Android Studio 2.0 Here's my code

package com.innovapp.maptest;

import android.location.Location;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setMyLocationEnabled(true);
Location myLocation = new Location(mMap.getMyLocation());

LatLng myLatLng = new LatLng(myLocation.getLatitude(),myLocation.getLongitude());
mMap.addMarker(new MarkerOptions().position(myLatLng).title("Your Location"+myLocation.getAccuracy()));
mMap.moveCamera(CameraUpdateFactory.newLatLng(myLatLng));
}
}

Here's my stack trace

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.innovapp.maptest, PID: 14690
java.lang.NullPointerException
at android.location.Location.set(Location.java:130)
at android.location.Location.<init>(Location.java:123)
at com.innovapp.maptest.MapsActivity.onMapReady(MapsActivity.java:32)
at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzo$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:361)
at com.google.android.gms.maps.internal.be.a(SourceFile:82)
at com.google.maps.api.android.lib6.e.fb.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5052)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)

Can anyone help me figure out why I'm getting this exception?

Also

As I understand, getMyLocation() decrepated, so what should I use now that retains the functionality of my code?

Abhay Shukla
  • 349
  • 1
  • 12

2 Answers2

0

Map.getMyLocation() can return null so you should check it first before calling getLatitude(). Also as you're using a map I would recommend you to implement onLocationChangeListener and initialize your map inside of this method

Jefferson Tavares
  • 983
  • 1
  • 8
  • 23
0

use

 MapsActivity extends FragmentActivity implements OnMapReadyCallback,
        GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener,
        LocationListener{}

OnCreate write

MapFragment mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.idMap);
        mapFragment.getMapAsync(context);

Check this

Community
  • 1
  • 1
ShutterSoul
  • 2,551
  • 3
  • 23
  • 28