[英]how to fix NullPointerException on my savedInstanceState and why its happend
我已經構建了這個映射應用程序,在分離的 android 項目和它的工作之前。 當我嘗試與另一個系統集成時,問題出現了,我復制了與以前的項目映射系統相同的所有代碼。 問題是我的“savedInstanceState”上有空值,我怎么解決?
這是我的新項目的映射系統,在手機 android 9 上運行。我想在集成之前與項目 A(“..”)和項目 B(“映射系統”)集成完全工作。
-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);”上有空值
當活動第一次啟動時, savedInstanceState
為空。
調用它的最安全方法是在任何地方使用它之前確保它不為空。
if(savedInstanceState != null) {
mapView.onCreate(savedInstanceState);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.