Android谷歌地图不在片段中工作

Android谷歌地图不在片段中工作,android,android-fragments,android-maps-v2,android-maps,Android,Android Fragments,Android Maps V2,Android Maps,我正在使用带有viewpager的选项卡片段中的映射,但映射在我的应用程序中显示空指针异常 我添加了权限 和API密钥是否正确 <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> 我的日志: 1-01 23:58:24.139 5673-5673/com.example.rubin E/

我正在使用带有viewpager的选项卡片段中的映射,但映射在我的应用程序中显示空指针异常

我添加了权限

和API密钥是否正确

<meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />
我的日志:

1-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime: FATAL EXCEPTION: main
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime: Process: com.example.rubin, PID: 5673
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at com.example.rubin.HomeTabFragment2.onCreateView(HomeTabFragment2.java:34)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:610)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:677)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:940)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2615)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.View.measure(View.java:17547)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2015)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1173)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1379)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
11-01 23:58:24.139 5673-5673/com.example.rubin E/AndroidRuntime:    at android.view.Choreogra
当我将片段更改为片段活动时,它工作得非常好。
但我无法弄清楚它将如何在片段中工作。请帮帮我

尝试更改以下行:

 SupportMapFragment mapFragment = (SupportMapFragment) getFragmentManager()
            .findFragmentById(R.id.map);
致:


你的logcat投掷

AndroidRuntime:java.lang.NullPointerException:尝试调用 虚拟方法的无效性 com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' 关于空对象引用

您可以尝试使用
getSupportFragmentManager
getChildFragmentManager

SupportMapFragment m = ((SupportMapFragment)
        .getSupportFragmentManager().findFragmentById(R.id.map));
(完美解决方案)

公共最终碎片管理器getChildFragmentManager()

在API级别17中添加了一个专用FragmentManager,用于放置和 管理此片段内部的片段

有关更多详细信息,请查看


查看这些答案,它们与您的问题类似:您确定
R.layout.home\u tab\u fragment\u 1
此布局适用于您的
类hometab fragment2
?是的。我敢肯定。当我将片段更改为FragmentActivity时,它可以正常工作。不工作,无法解析方法getFragmentManager(),请尝试使用getSupportFragmentManager();非常感谢你。getChildFragmentManager()为我工作。@Rubinellikunnathu很高兴听到这个消息。前进
SupportMapFragment mapFragment = (SupportMapFragment)v.getFragmentManager()
            .findFragmentById(R.id.map);
SupportMapFragment m = ((SupportMapFragment)
        .getSupportFragmentManager().findFragmentById(R.id.map));
 SupportMapFragment m = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map));