【问题标题】:Android AssetManager/InputStream ExceptionAndroid AssetManager/InputStream 异常
【发布时间】:2010-07-10 22:00:04
【问题描述】:

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

关于为什么现在会中断的任何想法?我试图读取的文件是很小的(几个字节)二进制文件。

【问题讨论】:

    标签: android inputstream android-assets


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      也许你可以这样使用

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

      【讨论】:

        猜你喜欢
        • 2014-04-11
        • 2013-08-10
        • 2022-07-12
        • 1970-01-01
        • 2015-12-01
        • 2016-05-02
        • 2018-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多