Android AssetManager / InputStream异常

时间:2010-07-10 22:00:04

标签: android inputstream android-assets

进行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 个答案:

答案 0 :(得分:2)

终于明白了。公然的用户错误,但无法看到森林的树木。 list命令不包含目录名,open命令需要完整的路径名。 Duh :) open命令需要构建一个包含目录名和文件名的字符串。

答案 1 :(得分:1)

也许你可以像这样使用

    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()+ "'!");
    }