關於android上的NullPointer錯誤

2021-07-26 02:25:39 字數 1584 閱讀 6253

相信很多新手像我一樣,在寫android程式時總會遇到這種錯誤,然後就是焦頭爛額,不知所措,尤其是檢查完所有**,發現還是不知道怎麼回事啊!當然,這與我抓錯能力不足的問題有關。 我在這裡,無非就是想要總結一下我最近遇到的有關於nullpointer這個錯誤的幾種情況(因為本人實在是太過於粗心,所以犯的錯誤型別是多種多樣),唉,新手總是各種「歡樂多」啊!在正式總結前,必須強調,這篇文章只是乙個記錄而已,它裡面並沒有包含所有可能出現問題的情況,只是記錄我的情況而已,所以並不全面,如果有讀者看完後發現與自己的情況不符,那麼抱歉,你可以將你的情況告訴我,我們一起共同**。

好了,接下來就是正文了。

首先,我必須先說明一種很常見的情況,就是你必須仔仔細細的檢查你的元件有沒有宣告好,如果有宣告,但是還是沒有找到,說明,程式並沒有找到你的元件所在的layout,那麼,這時,你就要注意了,你是否有在前面的**中inflater過你的layout,如果有,請正確註明,你的id是在這個layout上,如:spinner = (spinner)layout.findviewbyid(r.id.spinner),這樣,程式才能正確找到你的元件。還有乙個問題,其實這就是程式設計時的不小心了,比如說,你明明是想要將你的元件都放在乙個你inflater過的layout上,就是你自己已經安排好乙個layout,但是,因為習慣,你會在你的**前面新增或者因為eclipse(如果你是用eclipse)自動新增setcontentview(r.layout.main),就會出現這個錯誤,因為有兩個layout,但是main並沒有用到,就會因為其中main是空的而報錯。這個錯誤我在一次實踐中遇到,那真的是令我感到肝腸寸斷,直到我在一次無奈(因為我已經檢查過很多次了!)的檢查中發現這個問題。還有一 個問題,就是當你想要在乙個layout上新增乙個view時,你是必須要為這個view再設定乙個layout的,因為這其實就是層的疊加,但是很可能你的布局檔案並沒有注意到這點,所以依然會報錯。這個問題我因為新手,試著自己從頭寫android程式,結果我沒有這麼做,於是,我又悲劇了。。。。。(有關於布局檔案的檢查,後來發現,其實是可以預先看一下預覽圖了,因為sdk是可以這麼做的,如果上面沒有正確顯示本應出現的樣子,那麼,你的布局檔案絕對有問題)

然後,在你檢查完所有的元件都有宣告並且都有可找到的id,layout沒有問題,布局檔案也沒事,那麼,你就要檢查一下你的邏輯了,尤其是迴圈。迴圈中很容易出現的問題就是,可能會出現空賦值。你要仔細檢查一下,你的變數,包括臨時變數有沒有出現空賦值的現象,或者你本想在迴圈中賦值,但是後來你發現根本不需要然後忘記將這個臨時變數去掉,就會出現問題。這個問題的產生其實就是我們的程式設計素養有點低的問題(是的,老實承認自己的素養低是件好事,不要因為自己做過什麼什麼東東就認為自己已經很高了,關鍵還是你的東東還是怎麼幹的先),我們可能想要在迴圈中給陣列元素賦值,而這個過程可能先要宣告乙個臨時變數,再賦給陣列元素,這時,就要想清楚,如果這個臨時變數真的就是乙個儲存的地方,沒啥意義,並不需要它在每次迴圈開始前就要儲存前一次迴圈的值,那麼,請放在迴圈中,而不是宣告在外面,因為這樣就會出現上面我說的情況,你宣告了乙個空賦值的臨時變數。所以,老老實實檢查自己所宣告過的變數,看看是否會出現空賦值的情況是很重要的!

以上的情況就是我所遇到的,後面如果遇到其他的情況或者有人跟我反映他所遇到的新情況,那麼,我就會繼續補充這篇文章。好了,就先這樣了,希望能夠幫到一些也像我一樣在迷惘中痛苦掙扎的新手。

關於android上的NullPointer錯誤

相信很多新手像我一樣,在寫android程式時總會遇到這種錯誤,然後就是焦頭爛額,不知所措,尤其是檢查完所有 發現還是不知道怎麼回事啊!當然,這與我抓錯能力不足的問題有關。我在這裡,無非就是想要總結一下我最近遇到的有關於nullpointer這個錯誤的幾種情況 因為本人實在是太過於粗心,所以犯的錯誤...

關於null的操作

空值 空值一般用null表示 一般表示未知的 不確定的值,也不是空格 一般運算子與其進行運算時,都會為空 空不與任何值相等 表示某個列為空用 is null 不能使用comm null這種形式 某個列不為空 is not null 不能使用comm null 這種形式 空值在作公升序排列時,空值會放...

關於Android上的Style檔案的item項

首先,這不是我自己寫的,僅為了儲存下來隨時檢視。原創者不要在意。謝謝!android上的style分為了兩個方面 1.theme是針對窗體級別的,改變窗體樣式 2.style是針對窗體元素級別的,改變指定控制項或者layout的樣式。android系統的themes.xml和style.xml 位於...