Игра Unity начала вылетать на андроид 8 - PullRequest
0 голосов
/ 22 мая 2018

Получил след от стека от Android Vitals:

java.lang.Error: FATAL EXCEPTION [main]
Unity version     : 5.6.2f1
Device model      : samsung SM-G955F
Device fingerprint: samsung/dream2ltexx/dream2lte:8.0.0/*****/***********B7:user/release-keys
Caused by
  at bitter.jnibridge.JNIBridge.invoke (Native Method)
  at bitter.jnibridge.JNIBridge$a.invoke (Unknown Source:20)
  at java.lang.reflect.Proxy.invoke (Proxy.java:913)
  at $Proxy1.onBindingDied (Unknown Source)
  at android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java:1652)
  at android.app.LoadedApk$ServiceDispatcher$RunConnection.run (LoadedApk.java:1685)
  at android.os.Handler.handleCallback (Handler.java:789)
  at android.os.Handler.dispatchMessage (Handler.java:98)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6938)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

Понятия не имею.Любая помощь или объяснения будут приветствоваться.

Ответы [ 3 ]

0 голосов
/ 21 июля 2018

Мы видели ту же ошибку в большой части нашей базы игроков.Мы смогли связаться с Unity и получить представление об ошибке.

Из службы поддержки Unity Enterprise:

Мы знаем об этой проблеме.Мы исправили это в 2017.3 после обновления JNIbridge для поддержки API Oreo.В предыдущих отчетах сообщалось, что при запуске приложения Unity с разрешением INTERNET и обновлении, остановке или перезагрузке сервисов Google play это приведет к сбою приложения на устройствах Android 8, 8.1.

Проблема заключается в том, чтотот ServiceConnection.onBindingDied, который был добавлен на уровне API 26, не реализован до 2017.3;мы добавили это для GoogleAdsServiceConnection в такой версии, а также обновили JNIbridge для решения этой проблемы.

Я могу воспроизвести его в пустом проекте, установив для доступа в Интернет значение «Требовать» и при запуске на устройстве,Зайдите в настройки -> Приложения и уведомления-> Службы Google Play-> Хранение-> УПРАВЛЕНИЕ ПРОСТРАНСТВОМ-> ОЧИСТИТЬ ВСЕ ДАННЫЕ, затем приложение вылетает, как описано в Переполнении стека.

Планируете ли вы обновить свой проектна 2017.4 LTS?

Я спрашиваю, потому что мы думаем, что обратный порт исправления не выполним, не только потому, что это будет для версии, для которой мы больше не создаем исправления (5.6.x), носоответствующее исправление будет включать в себя бэкпорт полной поддержки API-интерфейсов Oreo, что может быть сложно и может вызвать регресс.

Мы решили попробовать обновить нашу версию Unity с 5.6.4f1 до рекомендуемой версии 2017 года.Похоже, это должно решить наши проблемы.

0 голосов
/ 24 июля 2018

Нам удалось воспроизвести ошибку на Android 8.0 с Unity 2017.2.1.

Обновление до Unity 2017.4.7 LTS устранил проблему.

0 голосов

Сегодня для нашего проекта в Android Vitals для пользователей на Android 8.0 и 8.1 стала отображаться такая же ошибка.Мы используем Unity 2017.1.3 Возможно, это не зависит от версии Unity.Я обнаружил некоторую корреляцию возникновения такого сбоя с выпуском обновлений для Google Play Market.

ОБНОВЛЕНИЕ: Нам удалось воспроизвести эту ошибку на нашем устройстве Android 8.1:

  • Запустите приложение на устройстве.
  • Заставьте Google Play Market остановиться.
  • Попробуйте купить IAP в магазине.
  • Смотреть указанныйсообщение об ошибке в Android Vitals

Учитывая особенность этой ошибки, которая появляется неожиданно и массово, а затем также неожиданно полностью исчезает без внесения изменений в приложение, мы пришли к выводу, что системная служба останавливается принудительно, когда фонGoogle Play Market обновляется для пользователей с включенным автоматическим обновлением и подключением к сети Wi-Fi во время использования нашего приложения, а затем попытайтесь получить доступ к данным или выполнить операцию с IAP в магазине Google Play.

...