2012-07-17 74 views
1

我在assets的子文件夾中有一些文件,比如/assets/abc/0.txt/assets/abc/3.txt我正在使用下面的代碼。在Android資產中打開文本文件給NullPointerException

AssetManager mngr = getAssets(); 
String[] index = null; 

String[] files = mngr.list("abc");

try { 

     InputStreamReader reader = new InputStreamReader(getAssets().open(
       files[0])); 
     BufferedReader buffreader = new BufferedReader(reader); 
     int c = 0; 

     if (reader != null) { 
      String line; 
      while ((line = buffreader.readLine()) != null) { 
       index[c] = line; 
       c++; 
       System.out.println("Line number " + line); 
      } 
      reader.close(); 

     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

我不知道爲什麼這段代碼不工作,並給我NullPointerException。 請告訴我這段代碼是否有問題。

編輯 我logcat的是

07-17 23:58:24.023: W/System.err(1135): java.lang.NullPointerException 
07-17 23:58:24.023: W/System.err(1135):  at com.example.abc.Main.readFile(Main.java:141) 
07-17 23:58:24.023: W/System.err(1135):  at com.example.abc.Main.displayContent(Main.java:55) 
07-17 23:58:24.023: W/System.err(1135):  at com.example.abc.Main.onCreate(Main.java:36) 
07-17 23:58:24.023: W/System.err(1135):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-17 23:58:24.033: W/System.err(1135):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
07-17 23:58:24.033: W/System.err(1135):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
07-17 23:58:24.033: W/System.err(1135):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
07-17 23:58:24.033: W/System.err(1135):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
07-17 23:58:24.033: W/System.err(1135):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-17 23:58:24.033: W/System.err(1135):  at android.os.Looper.loop(Looper.java:123) 
07-17 23:58:24.033: W/System.err(1135):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-17 23:58:24.033: W/System.err(1135):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-17 23:58:24.033: W/System.err(1135):  at java.lang.reflect.Method.invoke(Method.java:521) 
07-17 23:58:24.033: W/System.err(1135):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-17 23:58:24.033: W/System.err(1135):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-17 23:58:24.033: W/System.err(1135):  at dalvik.system.NativeStart.main(Native Method) 
+1

可以請您發佈logcat嗎? – prolink007 2012-07-17 18:01:41

+0

你會在哪一行發生異常? – Jari 2012-07-17 18:02:21

回答

1

String[] index = null;是錯誤的來源

index[c] = line;是其中的NullPointerException發生;

在使用它之前,您必須將對象分配給數組。

1

如果你不分配給變量指標,然後指數[C]至少會導致空指針異常null之外的任何。

相關問題