Android GoogleMap类对象引发空指针异常

Android GoogleMap类对象引发空指针异常,android,google-maps,Android,Google Maps,朋友们,我在addMarker上遇到空指针错误 下面是我的示例代码 GoogleMap myMap; android.support.v4.app.FragmentManager myFragmentManager = getSupportFragmentManager(); SupportMapFragment myMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map); myMap = my

朋友们,我在addMarker上遇到空指针错误

下面是我的示例代码

GoogleMap myMap;
android.support.v4.app.FragmentManager myFragmentManager = getSupportFragmentManager();
SupportMapFragment myMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
myMap = myMapFragment.getMap();
myMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
myMap.setMyLocationEnabled(true);
myMap.getUiSettings().setZoomControlsEnabled(true);
myMap.getUiSettings().setCompassEnabled(true);
myMap.getUiSettings().setMyLocationButtonEnabled(true);
错误消息,如第行的空指针

myMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
main.xml


你知道我该如何解决这个问题吗?

不久前我就讨论过这个问题。首先检查片段管理器是否找到了您的片段

如果没有,请尝试替换将片段放入视图的方式。如果你想要另一种方式的例子,我已经发布了一个地图的例子

如果还有任何问题,请随时发表意见,我将与您一起解决:

编辑

你有正确的API密钥吗?如果你不能联系谷歌的服务器,那很有可能这就是你的问题。否则可能会出现清单问题。请确保您拥有读取服务和INTERNET权限

编辑2

好吧,我以前很懒,只是把你介绍给我的项目。如果您在项目中获得了与地图的连接,让我们从那里开始

我在最初的回答中建议检查myMapFragment是否为null。如果很好,请尝试按照以下思路做一些事情:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
SupportMapFragment myMapFragment = new SupportMapFragment();
ft.replace(R.id.map, myMapFragment, Constant.TAXI_FRAGMENT_ID);
ft.commit();
其中R.id.map是一个空的FrameLayout

如果myMapFragment不为null,请尝试扩展SupportMapFragment并运行以下测试:

public class MyMapFragment extends SupportMapFragment {
    @Override
    public void onActivityCreated()
    {
        if (getMap() == null) Log.e("TAG", "There's something very wrong here";
    }
}

另外,如果执行此操作,请确保正在膨胀MyMapFragment的实例而不是SupportMapFragment的实例

是否检查MyMapFragment.getMap是否返回非空对象?添加xml布局代码检查此情况是否使用了调试器?我检查了您的示例并将其与我的应用程序进行了比较现在问题是在运行应用程序错误消息时give like无法加载映射。无法联系谷歌服务器。
public class MyMapFragment extends SupportMapFragment {
    @Override
    public void onActivityCreated()
    {
        if (getMap() == null) Log.e("TAG", "There's something very wrong here";
    }
}