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)
答案 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,而不是片段本身。