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


FATAL EXCEPTION: ……

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

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

介紹:

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

 

問題出現的情況:

  布局有該,並且在java代碼中也有 findViewById語句, 但是調試的時候還是出了on a null object reference錯誤。

  

問題出現的原因:

  在安卓開發的時候,遇到類似的布局以及實現的方法的時候,我們就習慣直接復制。

  一般來說,不同布局中設置id為同名的時候,是不會報錯的。但是復制的情況特殊,雖然把setsetContentView(R.layout.xxx)中xxx的名字修改了,但是findViewById中的ID卻沒有改變。也就是說還是源布局(也就是被復制的那個布局)里的ID。

  有什么證據呢?

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

 

解決辦法:

  原因找到了,解決辦法就呼之欲出了。

  我的做法是把第二個布局里的控件名字全改了(加了個前綴)。這個時候,會發現java代碼不會報錯。但是findViewById里的內容也要改。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM