为什么这个映射代码会给出空指针异常?

时间:2016-02-05 07:58:51

标签: android nullpointerexception

    public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MapFragment mapFragment = (MapFragment)getFragmentManager().findFragmentById(R.id.googleMap);
        mapFragment.getMapAsync(this); // line 22
    }


    @Override
    public void onMapReady(GoogleMap googleMap) {
        googleMap.addMarker(new MarkerOptions().position(new LatLng(25.4607640, 78.6432520)).title("Gaurav Joshi"));

    }
}

以下是我尝试在Android Studio上实现的基本代码,但它显示了Null指针异常:

Caused by: java.lang.NullPointerException at com.example.hp.g_1.MainActivity.onCreate(MainActivity.java:22)

3 个答案:

答案 0 :(得分:2)

请检查您是否在布局文件activity_main.xml中定义了MapFragment。看起来FragmentManager找不到地图片段并在此处抛出NPE:mapFragment.getMapAsync(this);因为mapFragment为null

答案 1 :(得分:0)

问题的解决方案是在类中声明你的googleMap变量,然后在onMapReady中声明:

this.googleMap=googleMap;

答案 2 :(得分:0)

我认为" googleMap" id应该是片段容器的id,而不是片段本身。

相关问题