MapFragment or MapView getMap() returns null on Lollipop

前端 未结 4 1669
情话喂你
情话喂你 2020-12-09 09:32

I\'ve been using Google Maps API v2 for a long time on Android 4.x versions without a problem. Now I installed latest Lollipop build on my Nexus devices (5 and 7) trying to

4条回答
  •  失恋的感觉
    2020-12-09 10:10

    I had exactly the same problem but this is what worked for me:

    Replace this...

    GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

    with this...

    GoogleMap map = getMapFragment().getMap();

    then slip this bad boy in and give it a whirl...

    private MapFragment getMapFragment() {
        FragmentManager fm = null;
    
        Log.d(TAG, "sdk: " + Build.VERSION.SDK_INT);
        Log.d(TAG, "release: " + Build.VERSION.RELEASE);
    
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            Log.d(TAG, "using getFragmentManager");
            fm = getFragmentManager();
        } else {
            Log.d(TAG, "using getChildFragmentManager");
            fm = getChildFragmentManager();
        }
    
        return (MapFragment) fm.findFragmentById(R.id.map);
    }
    

提交回复
热议问题