Ошибка Приложение Play Store либо не установлено, либо не является официальной версией в Google Play Asset Delivery

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

assetPackManager.registerListener(downloadListener)                                    

assetPackManager.fetch(listOf(packageName)).addOnCompleteListener{ res ->
 Timber.i("Download $packageName ${res.isSuccessful}")
}

Но я получил много отчетов об ошибках от firebase crashlytics, которые я не знаю, как решить:

Fatal Exception: java.lang.Exception com.google.android.play.core.assetpacks.b: -11: 
 Asset Pack Download Error(-11): The Play Store app is either not installed or not the 
   official version. 
(https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackErrorCode.html#PLAY_STORE_NOT_FOUND) at 
   com.google.android.play.core.assetpacks.e0.l(Unknown Source:21) at 
   com.google.android.play.core.assetpacks.e0.f(Unknown Source:4) at 
   com.google.android.play.core.assetpacks.o4.g(Unknown Source:19) at 
   com.bookbot.i.s(Unknown Source:231) at com.bookbot.i.C(Unknown Source:24) at 
   com.bookbot.i.f(Unknown Source:0) at com.bookbot.h.run(Unknown Source:6) at 
   android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7397) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)

В этом документе говорят The Play Store app is either not installed or not the official version, но я не очень понимаю. Мое приложение публикуется в Google Play только с помощью пакета приложений, я больше нигде не публикуюсь, поэтому мне интересно, почему он говорит, что PlayStore не является официальным?

Вот некоторые затронутые устройства:

AT&T Fusion Z (android 10)
Galaxy S9  (android 10)
vsmart (android 11) 

Есть ли способ решить эту проблему? Или хотя бы проверить, не поддерживается ли устройство Play Asset Delivery?

0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что ж, сообщение об ошибке говорит вам, что именно не так — на этих конкретных устройствах приложение Play Store либо удалено, либо отключено. Или они могли быть рутированы, а приложение Play Store было изменено. Или эти устройства могут быть настроены вообще без сервисов Google и использовать альтернативные магазины приложений.

Однако это достаточно легко проверить. Просто используйте GoogleApiAvailability:

val result = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(activityContext)

и оттуда вы можете либо реализовать свою собственную логику, либо Google отобразит диалоговое окно с ошибкой:

val dialog = GoogleApiAvailability.getInstance().getErrorDialog(activityContext, result, 123)
dialog?.show()

Вы также можете настроить onActivityResult() для проверки ответа из диалогового окна ошибки.

Спасибо. Я знал о проверке доступности службы Google Play, но это то же самое для этой проблемы с Google Play, такой как root или недоступно?

ductran 18.09.2022 08:12

да, он сообщит вам, можно ли использовать сервисы Play или нет

user496854 18.09.2022 16:13

Другие вопросы по теме