Я на грани создания файла OBB только для добавления своего видео, размер которого составляет около 80 МБ. Я пытаюсь создать файл obb с помощью Win RAR с соглашением об именах main.2.my.package.name.obb
, и я действительно использую упомянутый формат Store
для архивирования моего файла. Скриншот – . Когда я пытаюсь запустить следующий код
ZipFileContentProvider contentProvider = new ZipFileContentProvider();
String contentPath = "content://my.package.name.provider";
File root = Environment.getExternalStorageDirectory();
String EXP_PATH = File.separator + "Android" + File.separator + "obb" + File.separator;
String path = root.toString() + EXP_PATH + getPackageName() + File.separator + "main.2.dmcc.mea.golive.golive.obb";
String zipFileName = contentPath + path + "/" + "video/app_video.mp4";
Log.e("The URI is ", "" + zipFileName);
uri = Uri.parse(zipFileName);
public class ZipFileContentProvider extends APEZProvider {
@Override
public String getAuthority() {
return "my.package.name.provider";
}
}
Тот, что в манифесте, выглядит так:
<provider
android:name="my.package.name.ZipFileContentProvider"
android:authorities="my.package.name.provider"
android:exported="false"
android:multiprocess="true" />
<meta-data
android:name="mainVersion"
android:value="1"></meta-data>
Итак, я пытаюсь проверить это, поместив сгенерированный файл OBB в свой sdcard/Android/obb
, но я получаю IllegalStateException
при попытке доступа к файлу. Скриншот.
И да, я пытался создать файл obb с помощью инструмента JOBB, доступного в инструментах Android, но я один из тех неудачливых людей, которые получают ошибку при попытке создать файл jobb. Мне стало известно, что это существующая ошибка в Android, о которой сообщает Google — см. здесь. Я сижу над этим уже почти десять лет.
Итог: JOBB не работает, благодаря Google и WinRAR кажется немного запутанным. Совершенно не представляю, как быть дальше.
Мои справочные ссылки включают: Ссылка 1 Ссылка 2 Ссылка 3
Я СИЛЬНО и СЕРЬЕЗНО предполагаю, что IllegalStateException
возникает только из-за того, что файл obb поврежден, или, по крайней мере, это то, что я узнал.
Может ли кто-нибудь спасти меня еще одно десятилетие?
P.S. Я действительно использую свое настоящее имя пакета на тот случай, если кто-то подумает, что он безумно преисполнен мудрости.
РЕДАКТИРОВАНИЕ 1: я только что протестировал свое приложение с помощью альфа-тестирования, но та же ошибка сохраняется. Грустно, правда!!
РЕДАКТИРОВАТЬ 2: я совершил идиотскую ошибку, сохранив файл с расширением obb, заархивировав его, где я должен был сохранить файл в формате zip и загрузить его в Play Store, что сделает конверсия для меня. Я так и сделал, но все еще сталкиваюсь с той же проблемой.
РЕДАКТИРОВАТЬ 3: я успешно создал файл obb с помощью инструмента JOBB с другого ПК, на котором инструмент работал нормально, и я попытался загрузить этот файл obb. Теперь, когда я загружаю, он выдает мне новую ошибку, которая теперь NullPointerException
в return mAPKExtensionFile.getAssetFileDescriptor(path)
. Путь находится прямо внутри файла obb, я думаю, что он не может найти сам файл obb! Наконец, я такой: «Теперь я могу получить разрешение Google на смерть !!»