Мы пытаемся отладить сбой, который происходит у некоторых пользователей, но не можем точно понять, что это такое.
В консоли Google Play мы видим это:
java.lang.RuntimeException:
at android.app.ActivityThread.handleReceiver (ActivityThread.java:3331)
at android.app.ActivityThread.-wrap20 (ActivityThread.java)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1734)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:6688)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1358)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass (ClassLoader.java:380)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
at android.app.ActivityThread.handleReceiver (ActivityThread.java:3326)
У нас в проекте настроен Crashlytics, и это первое, что загружается при запуске приложения. Подозреваю, что возможно один из классов отсутствует в манифесте, но мы его посмотрели (даже разобрали APK на всякий случай) и они все есть.
Мы подозреваем, что, возможно, это класс, который одна из активностей использует во время инициализации, но некоторые из них являются сторонними SDK, поэтому у нас нет доступа к их источнику.
Есть ли способ увидеть имя класса, которое не было найдено? Ошибки не отображаются на crashlytics, и мы не можем воспроизвести их ни на одном из имеющихся у нас устройств/эмуляторов.
Спасибо!
Редактировать: частичное разрешение
Проблема оказалась в используемом нами пакете уведомлений, для которого требуются записи для конкретного поставщика (которых у нас нет на наших тестовых устройствах) в AndroidManifest.xml. После повторной интеграции почти всех наших сторонних сервисов мы в конце концов увидели, что отчет о сбое исчез.
Нам не удалось достичь нашей общей цели (получить текст исключения, а не только трассировку стека исключений, из исключений, зарегистрированных в консоли разработчика Google Play), поэтому нет «хорошего» способа (насколько нам известно) найти какой класс отсутствовал. Довольно разочаровывающий ТБХ.