Я следую за this ссылкой для создания приложения, которое получает изображение и текст из синтаксического анализа и отображает его в списке, это просто ленивый список. Все прекрасно работает. но в некоторых смартфонах, таких как Nexus4 или некоторые изображения телефонов HTC, не отображаются, а альтернативное изображение с возможностью рисования. LogCat показывает следующее исключение для этих телефонов, я не уверен, почему это происходит. Если кто-нибудь может понять это, пожалуйста.parse listview filenotfound exception в некоторых телефонах android
04-28 15:37:03.971: W/System.err(1434): java.io.FileNotFoundException: /storage/emulated/0/ParseListViewImgTxt/-2050135145: open failed: ENOENT (No such file or directory)
04-28 15:37:03.971: W/System.err(1434): at libcore.io.IoBridge.open(IoBridge.java:409)
04-28 15:37:03.971: W/System.err(1434): at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
04-28 15:37:03.971: W/System.err(1434): at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
04-28 15:37:03.971: W/System.err(1434): at co.howlabs.cafe.lahore.ImageLoader.getBitmap(ImageLoader.java:73)
04-28 15:37:03.971: W/System.err(1434): at co.howlabs.cafe.lahore.ImageLoader.access$0(ImageLoader.java:56)
04-28 15:37:03.971: W/System.err(1434): at co.howlabs.cafe.lahore.ImageLoader$PhotosLoader.run(ImageLoader.java:147)
04-28 15:37:03.971: W/System.err(1434): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
04-28 15:37:03.971: W/System.err(1434): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-28 15:37:03.971: W/System.err(1434): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-28 15:37:03.971: W/System.err(1434): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-28 15:37:03.971: W/System.err(1434): at java.lang.Thread.run(Thread.java:841)
04-28 15:37:03.971: W/System.err(1434): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
04-28 15:37:03.971: W/System.err(1434): at libcore.io.Posix.open(Native Method)
04-28 15:37:03.971: W/System.err(1434): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
04-28 15:37:03.971: W/System.err(1434): at libcore.io.IoBridge.open(IoBridge.java:393)
04-28 15:37:03.971: W/System.err(1434): ... 10 more
на линии 88
private Bitmap decodeFile(File f) {
начинается этот метод. и линия 73 является OutputStream os = new FileOutputStream(f);
код для открытия Адресной книги
public FileCache(Context context) {
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED))
cacheDir = new File(
android.os.Environment.getExternalStorageDirectory(),
"ParseListViewImgTxt");
else
cacheDir = context.getCacheDir();
if (!cacheDir.exists())
cacheDir.mkdirs();
}
попробуйте добавить 'Log.d (" STORAGE_STATE ", Environment.getExternalStorageState());' to onСоздать запуск и поделиться тем, что возвращается на этих устройствах. –
он возвращает «смонтирован» @ inner_class7 –
Я считаю, что вы не используете правильный каталог/storage/emulated/0/ParseListViewImgTxt/-2050135145 не должны находиться там, где вы храните данные. он должен быть/storage/emulated/0/sdcard/ParseListViewImgTxt/-2050135145, но похоже, что проблема с модемом/sdcard на телефонах HTC не совсем о LG nexus 4 ... Я использую LG G3 и среду. getExternalStorageDirectory() + "/ DirectoryName" работает для меня. Можете ли вы поделиться кодом, в котором вы открываете каталог для записи и чтения. –