1

我正在努力在 android 中创建一个 expension 文件。我在这方面遇到了一些问题:

出于测试目的,我创建了一个包含一些视频的 .zip 文件,然后将其保存为 .obb 扩展名。现在我的 SD 卡中的文件是 main.1.com.xyz.abc.obb.zip

现在我在阅读文件时遇到了一些问题。这样做的代码:

String fileName = Helpers.getExpansionAPKFileName(this, true, 1);
        String path = Environment.getExternalStorageDirectory()+File.separator + "Android"
                + File.separator + "obb" + File.separator + fileName+".zip";
        InputStream ins = getExpansionFile().getInputStream(Environment.getExternalStorageDirectory()+File.separator + "Android"
                          + File.separator + "obb" + File.separator + fileName+File.separator+"video123.mp4");
        String name=ins.toString();




public ZipResourceFile getExpansionFile() {

    String fileName = Helpers.getExpansionAPKFileName(this, true, 1);

            int filesize = 108902927;
    if (Helpers.doesFileExist(this, fileName+".zip",filesize , false)) {

        try {
            return APKExpansionSupport.getAPKExpansionZipFile(
                    getBaseContext(), 1, 1);

        } catch (IOException e) {
            // TODO Auto-generated catch block

            e.printStackTrace();
        }
    }
    return null;       
    }

现在

InputStream ins = getExpansionFile().getInputStream(Environment.getExternalStorageDirectory()+File.separator + "Android"
                          + File.separator + "obb" + File.separator + fileName+File.separator+"video123.mp4");

方法返回 null。

请为此提供任何解决方案。

提前致谢。

4

1 回答 1

0

getExpansionFile().getInputStream(Environment.getExternalStorageDirectory()+File.separator + "Android" + File.separator + "obb" + File.separator + fileName+File.separator+"video123.mp4");;

错误在于 ZipResourceFile 中的文件是通过相对路径映射的,而不是绝对路径。在这种情况下,从 ZipResourceFile 获取文件的关键是

文件名 + File.separator + "video123.mp4"

于 2013-11-06T20:30:37.597 回答