0

Я создаю плагин cordova для загрузки файлов расширений. В настоящее время я реализую, что файлы расширения будут загружаться вручную.Файл не найден исключение при загрузке файла расширения android

Запрос будет отправлен, но я получаю ошибку

aborting request for download main.1000004.my.name.app.obb: while writing destination file: java.io.FileNotFoundException: /storage/emulated/0/Android/obb/my.name.app/main.1000004.my.name.app.obb.tmp: open failed: ENOENT (No such file or directory) 
02-20 17:12:12.930 15355-15631/my.name.app W/System.err: com.google.android.vending.expansion.downloader.impl.DownloadThread$StopRequest: while writing destination file: java.io.FileNotFoundException: /storage/emulated/0/Android/obb/my.name.app/main.1000004.my.name.app.obb.tmp: open failed: ENOENT (No such file or directory) 
W/System.err:  at com.google.android.vending.expansion.downloader.impl.DownloadThread.writeDataToDestination(DownloadThread.java:515) 
W/System.err:  at com.google.android.vending.expansion.downloader.impl.DownloadThread.transferData(DownloadThread.java:350) 
W/System.err:  at com.google.android.vending.expansion.downloader.impl.DownloadThread.executeDownload(DownloadThread.java:308) 
W/System.err:  at com.google.android.vending.expansion.downloader.impl.DownloadThread.run(DownloadThread.java:236) 
W/System.err:  at com.google.android.vending.expansion.downloader.impl.DownloaderService.onHandleIntent(DownloaderService.java:1086) 
W/System.err:  at com.google.android.vending.expansion.downloader.impl.CustomIntentService$ServiceHandler.handleMessage(CustomIntentService.java:104) 
W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
W/System.err:  at android.os.Looper.loop(Looper.java:148) 
W/System.err:  at android.os.HandlerThread.run(HandlerThread.java:61) 
W/System.err: Caused by: java.io.FileNotFoundException: /storage/emulated/0/Android/obb/my.name.app/main.1000004.my.name.app.obb.tmp: open failed: ENOENT (No such file or directory) 
W/System.err:  at libcore.io.IoBridge.open(IoBridge.java:452) 
W/System.err:  at java.io.FileOutputStream.<init>(FileOutputStream.java:87) 
W/System.err:  at java.io.FileOutputStream.<init>(FileOutputStream.java:127) 
W/System.err:  at com.google.android.vending.expansion.downloader.impl.DownloadThread.writeDataToDestination(DownloadThread.java:496) 
W/System.err: ... 8 more 
W/System.err: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) 
W/System.err:  at libcore.io.Posix.open(Native Method) 
W/System.err:  at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186) 
0W/System.err: at libcore.io.IoBridge.open(IoBridge.java:438) 

На самом деле, моя текущая основная версия расширительной 1000013. Но он ищет 1000004. Содержание такое же, так что это не проблема.

права должны быть доступны

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

Любая идея, почему это могло произойти?

ответ

2

Я считаю, что это происходит потому, что в консоли Google Play нет правильного файла расширения, связанного с вашим текущим кодом версии. Убедитесь, что вы загрузили и выбрали правильный файл расширения вместе с APK в Play Console.

Если это не поможет, проверьте, можно ли установить внешнее хранилище, позвонив по телефону Helpers.isExternalMediaMounted(). На вашем устройстве может не быть SD-карты (эмулятор?). Кроме того, вы можете проверить, имеет ли ваше приложение доступ к каталогу OBB, вызывая Helpers.canWriteOBBFile(Context).

Я рекомендую использовать обновленную библиотеку Downloader, включенную в пакет Better APK Expansion. У него исправлено несколько проблем, а также упрощен API, который минимизирует шансы застрелиться в ноге.

Смежные вопросы