Что означает «Загружено откуда угодно» в разделе Android Vitals в Play Developer Console?

Вчера я выпустил обновление для платного приложения, которое есть у меня в Google Play Store.

Через несколько часов я получил отзыв с 1 звездой от пользователя, который пожаловался на сбой приложения, поэтому я отправился исследовать его в разделе Android Vitals консоли разработчика. Сначала я не видел никаких признаков сбоев или ANR, но когда я изменил фильтр «Установлено из Play» на «Установлено откуда угодно», я увидел, что это приложение действительно часто дает сбой для этого одного пользователя. .

Я немного сбит с толку, и мне любопытно, что это значит — если он действительно получил приложение откуда-то еще, как он может оставить отзыв в Google Play? И как он вообще смог обновить приложение?

Может ли «Установлено откуда угодно» включать в себя другие вещи, например пользователя, который удалил приложение после сбоя? Или пользователь, который сделал резервную копию приложения с помощью чего-то вроде Titanium, а затем восстановил его из резервной копии?

Я, вероятно, должен также упомянуть, что фактический сбой произошел в библиотеке проверки лицензии Google, что делает часть «Установлено откуда угодно» еще более подозрительной. Вот трассировка стека (к сожалению, я забыл загрузить mapping.txt для деобфускации имен методов и уже внес изменения в исходный код).

Google Pixel XL (marlin), Android 9

java.lang.NoClassDefFoundError: 
  at com.google.android.vending.licensing.l.d (Unknown Source:29)
  at com.google.android.vending.licensing.l.a (Unknown Source:25)
  at com.google.android.vending.licensing.f.a (Unknown Source:2)
  at com.google.android.vending.licensing.f.a (Unknown Source:209)
  at com.google.android.vending.licensing.d$a$2.run (Unknown Source:52)
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:193)
  at android.os.HandlerThread.run (HandlerThread.java:65)
Caused by: java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)

Сначала это может показаться проблемой мультидекса, но более 50 других уже обновили приложение, и до сих пор есть только отчет о сбое от этого одного пользователя. Если бы это действительно была проблема с мультидексом, разве она не затронула бы большинство пользователей (по крайней мере, тех, кто работает с той же версией Android)?


person Magnus W    schedule 14.09.2018    source источник
comment
Вы можете выяснить дату, когда этот пользователь установил его и в какой стране? Если да, то можете ли вы сопоставить его с событием «Установить», отображаемым на панели инструментов?   -  person pcodex    schedule 14.09.2018


Ответы (1)


Как вы говорите, если пользователь не установил приложение из Play, он не сможет оставить отзыв. Но на самом деле это немного более тонко, чем то, что может быть причиной проблемы.

Google фактически основывает «может ли пользователь оставить отзыв» на «есть ли приложение в библиотеке пользователя», что означает «установил ли пользователь его на любом устройстве или даже купил, но не установил». Таким образом, описанная вами ситуация может иметь несколько причин:

  • возможно, пользователь купил предыдущую версию приложения, но более новая версия несовместима с его устройством. Таким образом, они скачали обновление из другого места и загрузили его. Они могут оставить отзыв, потому что он есть в их пользовательской библиотеке, но у них не установлена ​​последняя версия.
  • пользователь купил приложение на одном устройстве, а затем загрузил его на другое устройство, возможно, используя P2P или программное обеспечение для резервного копирования и восстановления. Поскольку он находится в библиотеке пользователя, они могут оставить отзыв, но установка не отображается.
  • возможно в Плей Маркете баг с блокировкой отзывов

Ваше дело выглядит довольно легко расследуемым с очень конкретной информацией. Не публикуйте в StackOverflow личные данные, такие как имя пользователя, отзыв или имя пакета вашего приложения. Вместо этого лучше всего в этом случае, как и во многих других, обратиться в службу поддержки консоли Google Play, где они могут собрать информацию в частном порядке. Вы можете связаться с ними через меню справки в консоли Play, за «?» значок вопросительного знака. Обратите внимание, что никто в Google может не дать вам точного объяснения, чтобы защитить конфиденциальность пользователя с плохим отзывом.

Все вышеперечисленное является общим советом. Примечание для этого конкретного спрашивающего, а не для всех в переполнении стека: в этом случае не стесняйтесь указывать в своем запросе запрос на эскалацию ко мне по имени. Сотрудник службы поддержки Play console должен иметь возможность отправлять мне данные, которые вы им отправляете, и я могу дополнительно проверить наличие ошибок.

person Nick Fortescue    schedule 17.09.2018