Невозможно получить доступ к содержимому файла расширения - PullRequest
0 голосов
/ 31 августа 2018

Я использую этот код, но я не могу получить доступ к содержимому файла расширения, я хочу показать изображение GIF из файла расширения, как я могу это сделать?

String 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

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Как уже упоминалось в , этот ответ , ZipResourceFile не может обрабатывать слишком много маленьких файлов и не является ZipFile. Поэтому попробуйте разделить ваши файлы на несколько каталогов.

Также вполне возможно, что нет файла с именем, stage1_popup.gif.

Кроме того, вы можете получить все записи через zipResourceFile.getAllEntries() и узнать, существует ли файл.

0 голосов
/ 03 сентября 2018

Библиотека файлов расширений Play APK является полностью открытым исходным кодом, и вы можете увидеть исходный код ZipResourceFile здесь .

Похоже, что stage1_popup.gif отсутствует в вашем файле obb. Чтобы исследовать его, почему бы не использовать adb pull , чтобы получить файл с вашего устройства и посмотреть, что он на самом деле содержит. Или загрузите исходный код и присоедините его к своей IDE, чтобы вы могли войти в вызов getInputStream () и посмотреть, где он идет не так.

...