2012-03-19 35 views
0

我試圖獲取存儲在SD中的所有圖像的數量,但我不知道爲什麼應用程序崩潰。崩潰時,獲取存儲在SD中的圖像數

代碼:

File dir = new File(Environment.getExternalStorageDirectory() 
      + "/images"); 
File[] files = dir.listFiles(); 
//int numberOfImages=files.length; 

Toast.makeText(getBaseContext(), "fdds"+files.length, Toast.LENGTH_SHORT).show(); 

logcat的:

03-19 11:54:44.425:E/AndroidRuntime(11775):致命異常:主
03-19 11點54: 44.425:E/AndroidRuntime(11775):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.androidbook.MediaStoreDemo.MediaStoreDemoActivity}:java.lang.NullPointerException
03-19 11:54: 44.425:E/AndroidRuntime(11775):在andr oid.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
03-19 11:54:44.425:E/AndroidRuntime(11775):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
03 -19 11:54:44.425:E/AndroidRuntime(11775):at android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
03-19 11:54:44.425:E/AndroidRuntime(11775):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:935)
03-19 11:54:44.425:E/AndroidRuntime(11775):at android.os.Handler.dispatchMessage(Handler.java:99)
03-19 11:54:44.425:E/AndroidRuntime(11775):at android.os.Looper.loop(Looper.java:130)
03-19 11:54:44.425:E/And roidRuntime(11775):at android.app.ActivityThread.main(ActivityThread.java:3691)
03-19 11:54:44.425:E/AndroidRuntime(11775):at java.lang.reflect.Method.invokeNative(Native方法)
03-19 11:54:44.425:E/AndroidRuntime(11775):at java.lang.reflect.Method.invoke(Method.java:507)
03-19 11:54:44.425:E/AndroidRuntime(11775):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:907)
03-19 11:54:44.425:E/AndroidRuntime(11775):at com.android.internal .os.ZygoteInit.main(ZygoteInit.java:665)
03-19 11:54:44.425:E/AndroidRuntime(11775):at dalvik.system.NativeStart.main(Native Method)
03-19 11: 54:44.425:E/An droidRuntime(11775):顯示java.lang.NullPointerException
十一月3日至19日:54:44.425:致E/AndroidRuntime(11775):在com.androidbook.MediaStoreDemo.MediaStoreDemoActivity.onCreate(MediaStoreDemoActivity.java:31)
03-19 11:54:44.425:E/AndroidRuntime(11775):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-19 11:54:44.425:E/AndroidRuntime(11775):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)

+0

什麼** ** logcat中說? – 2012-03-19 11:04:44

+0

使用logcat。 – Androelpha 2012-03-19 11:05:49

+0

你只是面臨一個問題,它是一個任何人都可以輕易識別的基本錯誤。你應該學習一些基本的編程。 :) – Dharmendra 2012-03-19 12:23:21

回答

1

嘗試,

if(files != null) 
{ 
Toast.makeText(getBaseContext(), "fdds"+files.length, Toast.LENGTH_SHORT).show(); 
} 

公共文件[] listFiles()

返回包含在由本文件所表示的目錄中的文件的陣列。 如果此文件不是目錄,則結果爲空。如果此文件的路徑是絕對路徑,則數組中的文件路徑是絕對路徑,否則它們是相對路徑。

所以只是檢查/images目錄..

+0

現在的應用程序,不會崩潰,但吐司顯示什麼都沒有,並在SD ???有圖片! – Androelpha 2012-03-19 11:12:26

+0

可以告訴我如何知道圖片保存在SD中的文件? – Androelpha 2012-03-19 11:15:38

+0

有DCIM/Camer。 – Androelpha 2012-03-19 11:17:49

0

請使用下面的代碼:

File dir = new File(Environment.getExternalStorageDirectory() 
      + "images"); 
File[] files = dir.listFiles(); 
//int numberOfImages=files.length; 

Toast.makeText(getBaseContext(), "fdds"+files.length, Toast.LENGTH_SHORT).show(); 

現在您的應用程序不應該拋出任何異常。

您應該使用image代替/image

相關問題