Подтвердить что ты не робот

Java.io.FileNotFoundException: (Нет такого файла или каталога)

Я получаю следующее сообщение в android LogCat

03-20 01:45:03.362: WARN/System.err(369): java.io.FileNotFoundException: /mnt/sdcard/LazyList/-2012431329 (No such file or directory)
03-20 01:45:03.362: WARN/System.err(369):     at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
03-20 01:45:03.372: WARN/System.err(369):     at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
03-20 01:45:03.382: WARN/System.err(369):     at java.io.FileOutputStream.<init>(FileOutputStream.java:94)
03-20 01:45:03.382: WARN/System.err(369):     at java.io.FileOutputStream.<init>(FileOutputStream.java:66)
03-20 01:45:03.392: WARN/System.err(369):     at com.ImageLoaders.ImageLoader.getBitmap(ImageLoader.java:86)

Загрузка изображений в эмулятор android Я добавил интернет-разрешение в файле androidManifest.xml, но похоже, что он не работает. Я также предоставил 10 МБ пространства для эмулятора Android.

кто-нибудь подскажет мне, что может быть проблемой? спасибо заранее.

4b9b3361

Ответ 1

На самом деле, я отсутствовал в разрешении чтения/записи на внешнее хранилище

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Ответ 2

Я решил эту проблему с добавлением разрешений:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Ответ 3

ImageLoader Constructor должен быть изменен.

public ImageLoader(Context context) {
    // Make the background thead low priority. This way it will not affect
    // the UI performance
    photoLoaderThread.setPriority(Thread.NORM_PRIORITY - 1);

    // Find the dir to save cached images
    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
        cacheDir = new File(context.getCacheDir(), "LazyList");
    else
        cacheDir = context.getCacheDir();
    if (!cacheDir.exists())
        cacheDir.mkdirs();
}

По умолчанию это похоже на

cacheDir = new File(android.os.Environment.getDataDirectory(), "LazyList");

Вы должны изменить его на

cacheDir = new File(context.getCacheDir(), "LazyList");

Я решил проблему 100% в Android 2.1.

Ответ 4

Кажется, вы ищете следующую директорию или файл:

/mnt/sdcard/LazyList/-2012431329

Это выглядит немного странно. Этот файл или каталог не может быть найден, поскольку он не является допустимым именем. Вы уверены, что это правильное имя?