Журналы сбоев Google Play не отображаются в Android App Bundle

Недавно мы обновили наши приложения, чтобы использовать наборы приложений Android (aab), а также включить собственные библиотеки arm64.

После этого наши журналы сбоев в собственном коде в «Консоли Google Play» -> «Android Vitals» -> «ANR и сбои» неправильно символизируют (стеки вызовов Java символизируют нормально).

Фрагмент типичного стека вызовов выглядит так:

  #21  pc 000000000015addc  /data/app/com.mycompany.mygame-2/split_config.arm64_v8a.apk
  #22  pc 0000000000293768  /data/app/com.mycompany.mygame-2/split_config.arm64_v8a.apk
  #23  pc 0000000000294cf0  /data/app/com.mycompany.mygame-2/split_config.arm64_v8a.apk

Проблема затрагивает сбои как в armv7, так и в arm64. Иногда ошибка будет иметь правильно символизированный стек вызовов, примерно 10% теперь правильно символизированы. До использования AAB и arm64 почти все стеки вызовов отображались правильно.

Чтобы обойти это, мы исследовали использование Crashlytics, но также столкнулись с проблемами при получении стека вызовов с правильными символами. Поскольку мы не использовали Crashlytics раньше, нам трудно понять, страдает ли он от той же проблемы или мы просто неправильно настроили Crashlytics. Однако этот сообщение указывает на то, что у других пользователей могут возникнуть проблемы с AAB и Crashlytics.

Кто-нибудь еще испытывает подобные трудности?

Существуют ли какие-либо известные обходные пути?

Кто-нибудь обновился, чтобы использовать AAB, и не видит проблем с символикой отчетов о сбоях в консоли Google Play?

Я считаю, что вы можете взять стек, как указано выше, и передать адреса утилите адрес2линия в вашей цепочке инструментов NDK. Вам нужно будет предоставить неразрезанный файл so, который соответствует версии, встроенной в PlayStore aab.

Alex Cohn 03.05.2019 21:58

Отвечает ли это на ваш вопрос? Crashlytics Отсутствуют символы NDK с пакетом приложений для Android

TomTasche 03.05.2020 15:46
10
2
4 021
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Редактировать: NDK 21 RC1 должен решить эту проблему.

Похоже, это связано с тем, что нативные библиотеки хранятся в APK в несжатом виде.

Добавив следующую опцию в свой gradle.properties, вы можете отключить ее:

android.bundle.enableUncompressedNativeLibs=false

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

Звучит многообещающе, спасибо. Может пройти неделя или около того, прежде чем я смогу развернуть обновление, чтобы узнать, помогает ли оно, но я сообщу, когда сделаю это.

Columbo 03.05.2019 21:43

Имейте в виду, что отключение этой функции сделает ваше приложение больше на устройствах пользователей, поскольку платформа должна будет извлечь собственные библиотеки, чтобы иметь возможность их загружать.

Pierre 04.05.2019 01:18

Да, вроде поправил. Спасибо! (небольшая награда в пути)

Columbo 08.05.2019 17:46

У меня была точно такая же проблема, и это исправило ее для меня, спасибо! @Pierre, вы не знаете, можно ли решить эту проблему без этого флага?

Loolooii 05.06.2019 18:51

Команда Google работает над решением этой проблемы. Обратите внимание, что в последней версии Gradle этот флаг не будет помечен как неподдерживаемый.

Pierre 05.06.2019 21:43

Это все еще проблема? Поскольку я получаю несколько идентичных сбоев в Play Console, но если я добавлю '''enableUncompressedNativeLibs=false''', появится предупреждение о том, что этот параметр является экспериментальным и не поддерживается. Я думаю, что в любом случае не проблема установить эту конфигурацию.

xarlymg89 12.08.2019 13:29

Предупреждение было удалено в более поздней версии плагина Android Gradle.

Pierre 12.08.2019 23:21

Последняя версия NDK должна решить эту проблему.

Pierre 03.12.2019 08:12

@pierre Вы имеете в виду, что последний NDK означает, что нам больше не нужно использовать enableUncompressedNativeLibs=false, или что последний NDK означает, что мы больше не будем получать предупреждение о том, что опция является экспериментальной и не поддерживается?

Columbo 03.12.2019 11:20

С последним NDK вы получите полные символические трассировки стека, как и раньше, без этого свойства gradle. Предупреждение: его не должно быть в последней версии Gradle.

Pierre 03.12.2019 12:50

@Pierre Какая версия NDK исправит это?

shubhamgarg1 18.12.2019 18:25

НДК 21 RC1: developer.android.com/ndk/downloads#beta-downloads

Pierre 19.12.2019 11:03

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