2016-07-07 148 views
0

爲什麼有時候這段代碼會拋出錯誤,有時候不會?無法追蹤出錯原因java.lang.NullPointerException

if (getActivity().getApplicationContext() != null){ 
    File file = new File(getActivity().getApplicationContext().getFilesDir() + "/img.jpg"); } 

上面的代碼是我的片段裏面

我的錯誤:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()' on a null object reference 
+2

可能沒有活動。 – ifly6

+0

@ ifly6好,那我該怎麼防止呢?任何想法 –

+0

如果你想檢查空值,可能改變你的空檢查 – ifly6

回答

3

如果在已經開始了這個已經不存在或主動獨立的AsyncTask或線程和活動運行此。 getActivity()可能返回null。

所以解決方法是爲getActivity()也添加null檢查以及getActivity()。getApplicationContext()。

+0

+1這個答案通常是這樣的。如果代碼位於構造函數中而不是onCreate中,或者生命週期中的代碼更難以使用小代碼示例,也可能會出現這種情況。 –

+0

你能舉一些例子來幫我檢查一下嗎? –

相關問題