My Application keeps crashing once it opens in nexus 6. The Problem is with getMapAsync().
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { GoogleMap mMap; //member variable private static final int ERROR_DIALOG_REQUEST = 9001; //constant to request certain king of dialog box definition from google play services lib private static final double AJAX_LAT = 43.851063, AJAX_LNG = -79.019737; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (servicesOK()) { setContentView(R.layout.activity_main); if (initMap()) { Toast.makeText(this, "Ready to map!", Toast.LENGTH_SHORT).show(); gotoLocation(AJAX_LAT, AJAX_LNG, 13); //as of now user must grand permissions to app from phone settings try { mMap.setMyLocationEnabled(true); } catch (SecurityException e) { Toast.makeText(this, "My Location not enabled!", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(this, "Map not connected!", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(this, "Services not OK!", Toast.LENGTH_SHORT).show(); } } //get a reference to the map object public boolean initMap() { if (mMap == null) { MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); } return (mMap != null); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; } //check to see if the google services are ok public boolean servicesOK() { GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance(); int isAvailable = googleAPI.isGooglePlayServicesAvailable(this); // handle 3 different possibility if (isAvailable == ConnectionResult.SUCCESS) { //everything ok, user can make mapping request return true; } else if (googleAPI.isUserResolvableError(isAvailable)) { //error user can do something about Dialog dialog = googleAPI.getErrorDialog(this, isAvailable, ERROR_DIALOG_REQUEST); dialog.show(); //google play services lib delivers correct dialog box telling user what to do } else { //something wrong, user cant do anything about Toast.makeText(this, "Can't connect to mapping service", Toast.LENGTH_SHORT).show(); } return false; } } Below is the error i get
Process: com.example.suhail.onmyway, PID: 27425 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.suhail.onmyway/com.example.suhail.onmyway.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.MapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) 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) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.MapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference at com.example.suhail.onmyway.MainActivity.initMap(MainActivity.java:89) at com.example.suhail.onmyway.MainActivity.onCreate(MainActivity.java:47) at android.app.Activity.performCreate(Activity.java:6251) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) 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) i have a button in activity_main.xml that once clicked opens another layout where a fragment is included
AppCompatActivity, you useSupportMapFragmentandgetSupportFragmentManager(). Beyond that, you might wish to post youractivity_mainlayout.