Почему появляется эта ошибка, если файл существует?
AssetManager am = getApplicationContext().getAssets();
String[] files = am.list("my_images");
ArrayList<Drawable> drawables = new ArrayList<>();
for (String file : files) {
showLog(file);
Drawable d = Drawable.createFromStream(am.open(file), null);
drawables.add(d);
}
Лог ошибки:
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances D/myLogs: ChangeIconActivity img_cart.png
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: java.io.FileNotFoundException: img_cart.png
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at android.content.res.AssetManager.openAsset(Native Method)
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at android.content.res.AssetManager.open(AssetManager.java:316)
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at android.content.res.AssetManager.open(AssetManager.java:290)
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at ru.by_em.my_finances.activities.ChangeIconActivity.addIcons(ChangeIconActivity.java:96)
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at ru.by_em.my_finances.activities.ChangeIconActivity.initializeAdapter(ChangeIconActivity.java:46)
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at ru.by_em.my_finances.activities.ChangeIconActivity.onCreate(ChangeIconActivity.java:39)
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at android.app.Activity.performCreate(Activity.java:5231)
03-06 21:30:59.373 18664-18664/ru.by_em.my_finances W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at android.os.Looper.loop(Looper.java:136)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5001)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
03-06 21:30:59.377 18664-18664/ru.by_em.my_finances W/System.err: at dalvik.system.NativeStart.main(Native Method)
Файл есть в папке:
В возвращаемом списке имена файлов указываются относительно заданного пути (path). Соответственно, для открытия файла нужно указывать путь, полученный из объединения path и имени файла:
am.open("my_images/" + file)
Об этом также говорится в документации к методу list.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники