簡體   English   中英

如何修復我的 savedInstanceState 上的 NullPointerException 以及它發生的原因

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM