消除Context爲空的NullPointerException異常

我發現程序啓動時,報如下的NullPointerException異常:
E/AndroidRuntime(4246): Caused by: java.lang.NullPointerException
E/AndroidRuntime(4246): at android.content.ContextWrapper.getResources(ContextWrapper.java:81)

我的源碼如下:

[java] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. private OnPageChangeListener mPageChangeListener = new OnPageChangeListener()  
  2. {  
  3.     private int bmpW = 0// 遊標圖片的寬度  
  4.     {  
  5.             bmpW = BitmapFactory.decodeResource(MainActivity.this.getResources(),  
  6.                     R.drawable.tab_line_press).getWidth();  
  7.             //....  
  8.     }  
  9.     //...  
  10. }  

查看Android源碼(ContextWrapper.java:81),發現是Context的變量mBase爲Null了:

[java] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. Context mBase;  
  2. //...  
  3. @Override  
  4. public Resources getResources()  
  5. {  
  6.     return mBase.getResources();  
  7. }  

於是,發現這個做有問題,在變量的聲明時,Context還沒有傳遞進來呢!
必須等到OnCreate後,才能使用Context去獲取資源(getResources)!


發佈了21 篇原創文章 · 獲贊 20 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章