2016-01-10 89 views
-2

我想從使用XmlPullParser的xml文檔中獲取一些數據。當我試圖運行該應用程序是因爲空對象引用而崩潰。代碼和錯誤如下,但我沒有看到代碼的任何問題。嘗試調用空對象引用虛擬方法'android.content.res.Resources android.content.Context.getResources()'

public List<Tara> parseXML(Context context){ 
     try{ 
      XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
      factory.setNamespaceAware(true); 
      XmlPullParser xpp = factory.newPullParser(); 

      InputStream stream = context.getResources().openRawResource(R.raw.data_info); 
      xpp.setInput(stream, null); 

      int eventType = xpp.getEventType(); 
      while(eventType != XmlPullParser.END_TAG){ 
       if(eventType == XmlPullParser.START_TAG){ 
        handleStartTag(xpp.getName()); 
       } else if (eventType == XmlPullParser.END_TAG){ 
        tagCurent = null; 
       } else if(eventType == XmlPullParser.TEXT){ 
        handleText(xpp.getText()); 
       } 

       eventType = xpp.next(); 
      } 


     } catch (XmlPullParserException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return listaTara; 
    } 

看來,上線則顯示

InputStream stream = context.getResources().openRawResource(R.raw.data_info); 

下一個錯誤:

01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime: FATAL EXCEPTION: main 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime: Process: com.example.ionut.simi_word_info, PID: 7539 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ionut.simi_word_info/com.example.ionut.simi_word_info.views.allCountry_activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2546) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.access$900(ActivityThread.java:177) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:102) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:145) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5942) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:372) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.content.ContextWrapper.getResources(ContextWrapper.java:90) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:74) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at com.example.ionut.simi_word_info.helps.CountryPullParser.parseXML(CountryPullParser.java:31) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at com.example.ionut.simi_word_info.views.allCountry_activity.<init>(allCountry_activity.java:35) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at java.lang.reflect.Constructor.newInstance(Native Method) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at java.lang.Class.newInstance(Class.java:1650) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.Instrumentation.newActivity(Instrumentation.java:1079) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2536) 
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.access$900(ActivityThread.java:177)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:102)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:145)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5942)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:372)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)  
01-10 15:47:45.682 7539-7539/com.example.ionut.simi_word_info E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)  

感謝您的幫助!

+2

'context' is'null' –

+0

閱讀本文http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it – Budius

+2

可能[Android java.lang.RuntimeException:無法實例化活動ComponentInfo ... java.lang.NullPointerException](http://stackoverflow.com/questions/22456227/android-java-lang-runtimeexception-unable-to-instantiate -activity-componentinfo) –

回答

0

at com.example.ionut.simi_word_info.views.allCountry_activity。 <的init>(allCountry_activity.java:35)

不要做在Activity構造一個Context什麼。系統初始化活動後,在onCreate(Bundle)中執行此操作。

事實上,避免重載活動的構造函數,它很少有含義。

相關問題