2014-07-23 25 views
-1

在我的代碼中,我正在動態地形成一個字符串數組。 然後,當我嘗試通過「length」屬性獲取數組的大小時,應用程序崩潰,發出空指針異常。 有沒有另一種獲得數組長度的方法?字符串數組長度給出空指針android

File Cur_folder=new File(""+folder.toString()); 
       String[] dirList=Cur_folder.list(); 
       int c=dirList.length; 

登錄貓:

07-23 03:02:40.477: E/AndroidRuntime(1576): FATAL EXCEPTION: AsyncTask #1 
07-23 03:02:40.477: E/AndroidRuntime(1576): Process: com.example.nusearch, PID: 1576 
07-23 03:02:40.477: E/AndroidRuntime(1576): java.lang.RuntimeException: An error occured while executing doInBackground() 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at android.os.AsyncTask$3.done(AsyncTask.java:300) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at java.lang.Thread.run(Thread.java:841) 
07-23 03:02:40.477: E/AndroidRuntime(1576): Caused by: java.lang.NullPointerException 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at com.example.nusearch.MainActivity$StartIndexing.doInBackground(MainActivity.java:97) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at com.example.nusearch.MainActivity$StartIndexing.doInBackground(MainActivity.java:1) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at android.os.AsyncTask$2.call(AsyncTask.java:288) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
07-23 03:02:40.477: E/AndroidRuntime(1576):  ... 4 more 
+1

安置自己的代碼,然後.... –

+0

OK等待sec..i'll張貼 – user2820823

+1

似乎陣列本身是'null'。 – Henry

回答

1

堆棧跟蹤在談論空指針異常,這意味着你的Cur_folder描述爲File對象還沒有正確的路徑。

當您調用方法list()時,它可以返回字符串數組中的文件列表或null。 這裏是關於list()方法的文檔。將數量直接保存到整數是不安全的。

公衆的String []列表()

返回一個字符串在命名此抽象路徑名錶示的 目錄中的文件和目錄的數組。

如果這個抽象路徑名不表示一個目錄,那麼這個 方法返回null。否則,返回一個字符串數組,一個 用於目錄中的每個文件或目錄。表示 目錄本身的名稱和目錄的父目錄在結果中不包括 。每個字符串都是文件名而不是完整的路徑。 (...)

鏈接到文件:http://docs.oracle.com/javase/7/docs/api/java/io/File.html#list%28%29