Android AssetManager / InputStream Exception - PullRequest
1 голос
/ 11 июля 2010

Занимаюсь разработкой под Android 2.1.Кто-нибудь может объяснить мне, почему следующий код генерирует IOException и не загружает файл?Этот точный код раньше работал, и, насколько я могу судить, он все еще должен работать.Для справки, команда Log.d () правильно перечисляет все файлы, которые я ожидаю, и файлы правильно упакованы в мой файл .APK.

        AssetManager assetManager = mContext.getAssets();
        String[] files = null;
        try
            {
            files = assetManager.list("meshes");
            for (int i = 0; i < files.length; i++)
                Log.d(TAG, files[i]);
            InputStream is = assetManager.open(files[0]);
            }
        catch (IOException e) 
            {
            Log.e(TAG, "Could not load '" + e.getMessage()+ "'!");
            }

Любые идеи о том, почему это ломается сейчас?Файлы, которые я пытаюсь прочитать, представляют собой крошечные (пару байтов) двоичные файлы.

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

Наконец-то разобрался.Явная ошибка пользователя, но не удалось увидеть лес за деревьями.Команда list не включает имя каталога, команда open ожидает полный путь.Дух :) Команда open должна создать строку, которая включает в себя как имя каталога, так и имя файла.

1 голос
/ 19 февраля 2012

может быть, вы можете использовать как это

    AssetManager assetManager = this.getAssets();
    try{
            InputStream is = assetManager.open("tes.png");

            Log.d("Success", "Read");
    }catch (IOException e){
            Log.e("Failed", "Could not load '" + e.getMessage()+ "'!");
    }
...