utku
utku

Reputation: 21

java.lang.NullPointerException: MapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)

I am working on geofencing , and trying to initialize map but I am getting this error:

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

I also tried all the solutions that I found on stackoverflow but I could not find the solution to my problem.

 private void initGMaps(){
    mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}



 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textLat = (TextView) findViewById(R.id.lat);
        textLong = (TextView) findViewById(R.id.lon);

        // initialize GoogleMaps

        initGMaps();

        // create GoogleApiClient
        createGoogleApi();
    }

<!--GoogleMap fragment-->
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.utkukayman.locationbasedreminderbyutku, PID: 22875 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.utkukayman.locationbasedreminderbyutku/com.utkukayman.locationbasedreminderbyutku.MapsActivity}: 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:2665) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 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.utkukayman.locationbasedreminderbyutku.MapsActivity.initGMaps(MapsActivity.java:188) at com.utkukayman.locationbasedreminderbyutku.MapsActivity.onCreate(MapsActivity.java:82) at android.app.Activity.performCreate(Activity.java:6679) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6119)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)  Application terminated.

Can anyone help me? Thanks for answers

Upvotes: 1

Views: 888

Answers (2)

utku
utku

Reputation: 21

I am sorry for that it is all about my stupid fault .

super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ----->it should be activity_maps

Upvotes: 0

Eugen Pechanec
Eugen Pechanec

Reputation: 38223

You're inflating SupportMapFragment, not MapFragment.

Use getSupportFragmentManager() inside an activity and cast findFragment() result to SupportMapFragment.

Your activity needs to extend AppCompatActivity or FragmentActivity depending on your use case.

Upvotes: 3

Related Questions