Как мы должны обрабатывать ресурсы Android App Bundle? Сбои $ NotFoundException из-за автономной установки p2p? - PullRequest
0 голосов
/ 19 марта 2019

При использовании комплектов приложений Android устройства, устанавливающие приложение из Play Store, получают только те ресурсы, которые им необходимы.

В то же время Google также продвигается вперед с помощью своего совместного использования автономных p2p-приложений, используя приложения «ShareIt» и «Files Go by Google». https://android -developers.googleblog.com / 2018/10 / оффлайн-p2p-инсталлирует-beta.html

Наше приложение использует несколько изображений .png, в которых есть ресурсы для каждого drawable-dpi от ldpi до xxxhdpi, но даже в этом случае мы начали получать множество сбоев $ NotFoundException ресурсов из-за того, что пакет apk обменивался автономно с устройствами. требующие разных ресурсов.

После поиска решения я нашел только ответы от разработчика Google Play:

Я подозреваю, что в конечном итоге веб-сайты и программы обмена P2P научиться лучше делиться такими APK, чтобы не тратить слишком много времени беспокоиться об этом.

Пакет приложений Android представляет сбой Resource Not found в приложении Android

Приложение иногда аварийно завершает работу с ресурсами $ NotFoundException после переключения на распределение пакетов приложений для Android

В то же время наша статистика падений Play Console становится все ближе и ближе к «Порогу плохого поведения» из-за медленно растущего числа сбоев ресурсов $ NotFoundException после того, как мы переключились на Пакеты приложений. Около 1% наших пользователей делятся приложением в автономном режиме.

Единственный способ избежать этого, о котором мы можем подумать прямо сейчас, - это либо:

  • После запуска приложения проверьте, что packageManager.getInstallerPackageName для приложения «com.android.vending», что означает, что оно поступило из Play Store, и перенаправьте их для повторной установки из Play Store, если это не так, что гарантирует, что Play Store предоставляет этому устройству правильные ресурсы пакета. Однако это полностью сводит на нет преимущества совместного использования автономных p2p-приложений.

OR

  • Вернитесь к использованию apks вместо пакетов приложений.

Третьим вариантом может быть обеспечение того, чтобы все ресурсы изображения были независимыми от dpi векторными объектами рисования, но это не очень реалистично, поскольку ресурсы изображений не всегда достаточно просты, чтобы быть векторными объектами рисования.

Есть ли более элегантный или рекомендуемый способ решения этой проблемы ресурсов $ NotFoundException с пакетами приложений Android и совместным использованием p2p-приложений в автономном режиме, или кто-нибудь сталкивался с лучшими обходными путями, чтобы помочь предотвратить их?

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Вы должны иметь возможность фильтровать отчеты о сбоях в источнике «Установлено из Play» или «Установлено из любого места» в консоли Play. Если приложения не были установлены из Play, это не должно повлиять на ваш рейтинг жизненных показателей для порога плохого поведения.

Если приложения были установлены из Play, исключение ResourceNotFound не должно возникать. Если происходит сбой ResourceNotFound при просмотре только приложений, установленных из Play, то это ошибка.

Сообщите об этом в службу поддержки разработчиков Play Console, используя значок справки (вопросительный знак) в консоли Play

0 голосов
/ 19 июня 2019

Вы должны проверить это вручную, чтобы приложение устанавливалось через play-store или side-load.Класс PackageManager предоставляет метод getInstallerPackageName () , который сообщит вам имя установленного вами пакета.Приложения с боковой загрузкой не будут содержать значения.Для справки, пожалуйста, проверьте это .Этот сбой произойдет только один раз, т.е. в первый раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...