Java 如何修复我的savedInstanceState上的NullPointerException及其发生原因
我已经构建了这个映射应用程序,之前是在单独的android项目及其工作上。当我尝试与另一个系统集成时,问题就出现了,我复制了所有代码,就像之前的项目是映射系统一样。问题是我的“savedInstanceState”上存在空值,我如何无法修复它 这是我的新项目地图系统,运行在手机安卓9上。我想在集成之前集成项目A(“…”)和项目B(“映射系统”),所有这些都是完全可行的Java 如何修复我的savedInstanceState上的NullPointerException及其发生原因,java,android,mapbox,Java,Android,Mapbox,我已经构建了这个映射应用程序,之前是在单独的android项目及其工作上。当我尝试与另一个系统集成时,问题就出现了,我复制了所有代码,就像之前的项目是映射系统一样。问题是我的“savedInstanceState”上存在空值,我如何无法修复它 这是我的新项目地图系统,运行在手机安卓9上。我想在集成之前集成项目A(“…”)和项目B(“映射系统”),所有这些都是完全可行的 -error message- on mapView.onCreate(savedInstanceState); priv
-error message- on mapView.onCreate(savedInstanceState);
private MapView mapView;
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method
'void com.mapbox.mapboxsdk.maps.MapView.onCreate(android.os.Bundle)'
on a null object reference
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Mapbox.getInstance(this, "......");
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
mapView.onSaveInstanceState(outState);
}
预期结果:
地图正在展示中
实际结果:
应用程序崩溃是因为,当活动首次启动时,我的“mapView.onCreate(savedInstanceState);”上的值为空 调用它最安全的方法是在任何地方使用它之前确保它不为null
if(savedInstanceState != null) {
mapView.onCreate(savedInstanceState);
}
它是空的,但我仍然想使用它,那么如何解决这个问题呢?我还是不清楚在我给你的代码中,你会使用它。另一种选择是使用
onRestoreInstanceState()
设置保存的实例