java.io.FileNotFoundException :(没有这样的文件或目录)

时间:2011-03-19 13:51:00

标签: android

我在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文件中添加了Internet权限,但看起来它不起作用。 我也给了android模拟器10MB的空间。

任何一个人都会指导我可能出现什么问题? 提前谢谢。

3 个答案:

答案 0 :(得分:28)

我解决了添加权限的问题:

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

答案 1 :(得分:1)

ImageLoader构造函数应该更改为此。

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");

我在Android 2.1中100%解决了我的问题。

答案 2 :(得分:0)

您似乎在搜索以下目录或文件:

/mnt/sdcard/LazyList/-2012431329

这看起来有点奇怪。无法找到此文件或目录,因为它不是有效名称。你确定这是正确的名字吗?