Экспо ошибка - после сбоя, кнопка Android Back приводит к тому, что автономное приложение переводится в фоновый режим - PullRequest
0 голосов
/ 10 декабря 2018

Мы сталкиваемся с проблемой, при которой после «сбоя» и перезагрузки приложения (пользователь возвращается к первому экрану), когда пользователь нажимает кнопку «Назад» на Android, приложение переводится в фоновый режим.Мне удалось воспроизвести это с проектом «Tabs» по умолчанию, который предоставляется CRNA на Expo 31 SDK (ссылка: https://exp -shell-app-assets.s3.us-west-1.amazonaws.com / android/%40allen.lin/split-screen-poc-c25e728a483c4c71ba9109ac70a93ef1-signed.apk 1) без добавления дополнительного кода.В настоящее время обходной путь заключается в том, чтобы пользователь открыл переключатель приложений, а затем убил и заново открыл приложение.

Вот несколько шагов, чтобы последовательно воспроизвести его на телефоне Google Pixel 2 (или любом другом телефоне сфункция разделенного экрана), которая приведет к перезагрузке приложения:

  1. Откройте приложение.
  2. Нажмите на любую из вкладок, чтобы переключиться на разные экраны (например, «Ссылки»),Нажатие кнопки «Назад» на Android должно вернуть пользователя на вкладку «Домой».
  3. Здесь активируйте функцию разделения экрана, нажав и удерживая квадратный значок, расположенный в нижней части устройства (там, где кнопка Назади кнопки Домой есть).Это приведет к сбою и перезагрузке приложения.
  4. Чтобы выйти из режима разделенного экрана, перетащите черную горизонтальную полосу в центре экрана в нижнюю часть экрана, чтобы приложение снова сфокусировалось.Это снова приведет к сбою и перезагрузке приложения.Снова нажмите на вкладку «Ссылка».
  5. Теперь нажмите кнопку возврата Android.Приложение должно быть свернуто.

Я попытался посмотреть на ADB Logcat, но в журналах было слишком много шума.Одна строка выпирала, когда я grep'd журналы для «исключения», хотя:

12-05 16:03:07.137 23448 23448 E j : Runtime exception in RNObject when calling method getCurrentReactContext: java.lang.NullPointerException: null receiver

Я также видел некоторые вызовы moveTaskToBack (), которые делаются при нажатии кнопки назад.

Просто чтобы прояснить, это не связано с функцией разделения экрана на устройствах Android.Один из моих коллег смог воспроизвести это на своем устройстве XiaoMi A1M1 (под управлением Vanilla Android 8.1.0 - он работает на программе Android One) в нашем основном приложении Expo (SDK 30).Его устройство не имеет функции разделения экрана, и он все еще видел эту проблему.Я думаю, что наше реальное приложение могло выйти из строя на его устройстве из-за какой-то проблемы с кодом.

Это известная проблема в Expo?Есть ли обходной путь, чтобы избежать этой проблемы с кнопкой «Назад» на Android?

РЕДАКТИРОВАТЬ: Отслеживается инженерами Экспо здесь: https://github.com/expo/expo/issues/1786. Кажется, главная проблема на Android - это нехватка памяти, приводящая к гибели приложений.

Возможно, это проблема с естественной реакцией.

...