Сбой при получении количества изображений, хранящихся на SD - PullRequest
0 голосов
/ 19 марта 2012

Я пытаюсь получить количество всех изображений, хранящихся на 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): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: main
03-19 11: 54: 44.425: E / AndroidRuntime (11775): java.lang.RuntimeException: не удалось запустить действие ComponentInfo {com.androidbook.MediaStoreDemo / com.androidbook.MediaStoreDemo.MediaStoreDemoActivity}: java.lang.NullPointerException
03-19 11: 54: 44.425: E / AndroidRuntime и 11775).app.ActivityThread.performLaunchActivity (ActivityThread.java:1651)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1667)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на android.app.ActivityThread.access $ 1500 (ActivityThread.java:117)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на android.app.ActiveThread $ H.handleMessage (ActivityThread.java:935)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на android.os.Handler.dispatchMessage (Handler.java:99)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на android.os.Looper.loop (Looper.java: 130)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на android.app.ActivityThread.main (ActivityThread.java:3691)
03-19 11: 54: 44.425:E / AndroidRuntime (11775): на java.lang.reflect.Method.invokeNative (собственный метод)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на java.lang.reflect.Method.invoke(Method.java:507)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:907)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:665)
03-19 11: 54: 44.425: E / AndroidRuntime(11775): at dalvik.system.NativeStart.main (собственный метод)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): вызвано: java.lang.NullPointerException
03-19 11: 54: 44.425: E / AndroidRuntime (11775): на com.androidbook.MediaStoreDemo.MediaStoreDemoActivity.onCreate (MediaStoreDemoActivity.java:31)
03-19 11: 54: 44.425: E / AndroidRuntime (11775): в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047 *)* 03-19 11: 54: 44.425: E / AndroidRuntime (11775): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1615)

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Попробуйте,

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

публичный файл [] listFiles ()

Возвращает массив файлов, содержащихся в каталоге, представленном этим файлом. Результат равен нулю, если этот файл не является каталогом. Пути к файлам в массиве являются абсолютными, если путь к этому файлу является абсолютными, в противном случае они являются относительными.

Так что просто проверьте /images каталог ..

0 голосов
/ 19 марта 2012

Пожалуйста, используйте следующий код:

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

...