首页 > 解决方案 > 无法访问扩展文件内容

问题描述

我正在使用此代码,但无法访问扩展文件内容,我想显示扩展文件中的 gif 图像,我该怎么办?

字符串 packageName = getPackageName(); 文件根 = Environment.getExternalStorageDirectory();

                File expPath = new File(root.toString() + "/Android/obb/" + packageName);

                try {
                    if (expPath.exists()) {
                        String strMainPath = expPath
                                + File.separator
                                + "main."
                                + getPackageManager().getPackageInfo(
                                getPackageName(), 0).versionCode + "."
                                + packageName + ".obb";

                        File f = new File(strMainPath);

                        if (f.exists()) {
                            Log.e("Path ", "=====>Exists");
                        } else {
                            Log.e("Path ", "=====> Not Exists");
                        }


                        ZipResourceFile zip = new ZipResourceFile(strMainPath);
                        InputStream iStream = zip.getInputStream("stage1_popup.gif");

                        BitmapFactory.Options option = new BitmapFactory.Options();
                        option.inPurgeable = true;

                        Bitmap bitmap = BitmapFactory.decodeStream(iStream, null, option);
                        Glide.with(SampleDownloaderActivity.this).load(bitmap).into(image);
                    }
                } catch (Exception e) {

                }

http://prntscr.com/kp25qz

标签: androidapk-expansion-files

解决方案


Play APK 扩展文件库是完全开源的,您可以在此处查看 ZipResourceFile 的源代码

看起来 stage1_popup.gif 不在您的 obb 文件中。要调查它,为什么不使用adb pull将文件从您的设备中取出并查看它实际包含的内容。或者下载源代码并附加到您的 IDE,这样您就可以进入 getInputStream() 调用并查看哪里出错了。


推荐阅读