Android Google地图NullPointerException与targetSdkVersion 21

Android Google地图NullPointerException与targetSdkVersion 21,android,Android,我正在开发一个应用程序,其中包括一个通过选项卡访问的MapFragment。最近,随着Android 5.0棒棒糖的发布,我决定更新材质设计。我进行了必要的更改(在build.gradle中更改SDK,将父主题切换到android:theme.Material.Light,等等)。但是,在运行应用程序时,会出现以下错误: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android

我正在开发一个应用程序,其中包括一个通过选项卡访问的
MapFragment
。最近,随着Android 5.0棒棒糖的发布,我决定更新材质设计。我进行了必要的更改(在build.gradle中更改SDK,将父主题切换到
android:theme.Material.Light
,等等)。但是,在运行应用程序时,会出现以下错误:

    java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.GoogleMap com.google.android.gms.maps.MapFragment.getMap()' on a null object reference
        at com.me.myapp.MyActivity$PlaceholderFragment.onCreateView(MyActivity.java:300)
        at android.app.Fragment.performCreateView(Fragment.java:2053)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
        at android.app.BackStackRecord.run(BackStackRecord.java:833)
        at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1452)
        at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:483)
        at android.support.v13.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:145)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
        at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:447)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:550)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
我决定再次检查补丁,这次一次只做一件事。我发现,如果我将行
targetSdkVersion 20
更改为
targetSdkVersion 21
,应用程序将以与上述相同的
NullPointerException
崩溃。但是,将
targetSdkVersion
设置为20并没有导致错误,应用程序的工作方式与我预期的一样(包括材料设计)

我知道
getMap()
可以返回
null
,我只是有点困惑,为什么只有当
targetSdkVersion
为21时才会出现这种情况

还有其他人见过这个吗?我做错什么了吗

谢谢

编辑:

我已经离开了占位符片段,但问题仍然存在

以下是我的onCreateView中的相关代码:

rootView = inflater.inflate(R.layout.fragment_map, container, false);

map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map1)).getMap(); // Causes NPE

类必须扩展FragmentActivity,并将标记map1更改为SupportMapFragment

YourActivity yourActivity = (YourActivity)getActivity();
    SupportMapFragment mapFragment = (SupportMapFragment)yourActivity.getSupportFragmentManager().findFragmentById(R.id.myFriendsMapFragment);
    map = mapFragment.getMap();

你能发布你的
MyActivity.PlaceholderFragment
s
onCreateView()
方法的代码吗?NPE出现在该类的第300行。您正在使用哪个版本的Google Play Services?在my build.gradle:
compile'com.Google.android.gms:Play Services:6.1.71'