on a null object reference 問題的解決辦法

  FATAL EXCEPTION: ……java

  java.lang.RuntimeException: Unable to start activity ComponentInfo……android

  ava.lang.NullPointerException: Attempt to invoke virtual method 'android……on a null object reference佈局

介紹:spa

  我在寫項目的時候,遇到了button等控件出現on a null object reference ,在網上找了好久沒找到解決辦法。最後仍是本身發現了問題的來源,又本身改正了。具體形式如上。調試

 

問題出現的狀況:開發

  佈局有該,而且在java代碼中也有 findViewById語句, 可是調試的時候仍是出了on a null object reference錯誤。it

  

問題出現的緣由:io

  在安卓開發的時候,遇到相似的佈局以及實現的方法的時候,咱們就習慣直接複製。object

  通常來講,不一樣佈局中設置id爲同名的時候,是不會報錯的。可是複製的狀況特殊,雖然把setsetContentView(R.layout.xxx)中xxx的名字修改了,可是findViewById中的ID卻沒有改變。也就是說仍是源佈局(也就是被複制的那個佈局)裏的ID。方法

  有什麼證據呢?

  鼠標左鍵中止findViewById(R.id.yyy)中的yyy上,比較複製的java文件和源java文件,會發現他們的ID是同樣的。

 

解決辦法:

  緣由找到了,解決辦法就呼之欲出了。

  個人作法是把第二個佈局裏的控件名字全改了(加了個前綴)。這個時候,會發現java代碼不會報錯。可是findViewById裏的內容也要改。

  感受這樣改正仍是挺麻煩的,期待有更好的辦法。

相關文章
相關標籤/搜索