java.lang.RuntimeException на android.app.ActivityThread.performLaunchActivity
В консоли Google Play возникает java.lang.RuntimeException
без " Причины: "
Приведенный ниже журнал скопирован из журнала сбоя консоли Google Play.
Это для: Android 8.0, Android 8.1, Android 7.0, Android 7.1
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
at android.app.ActivityThread.-wrap11 (Unknown Source)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
at android.os.Handler.dispatchMessage (Handler.java:105)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6938)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
Пожалуйста, помогите мне в этом!
Ответы
Ответ 1
ActivityThread.java
говорит, что он updatePendingConfiguration() или registerOnActivityPausedListener(), поэтому он либо не работает с .onPause()
, либо не вызывает метод super()
с правильными аргументами - или что-то еще не так с применяемым Configuration
.
Я бы с радостью объяснил, как решить проблему, но в вопросе отсутствует код, который выдает исключение. Лучшим способом решения этой проблемы может быть использование чего-то похожего Firebase Crashlytics, чтобы можно было увидеть, откуда именно это исходит и на какие устройства влияют (в случае, если это должно быть конкретным). Я почти подозреваю, что это может быть вызвано запуском Activity
с приложением Context
, а не установкой флага Intent.FLAG_ACTIVITY_NEW_TASK
(см.: этот ответ).
Ответ 2
Из анализа журнала можно сделать следующие предположения:
Исключение выдается в любой из внешних библиотек используется в проекте
Объяснение: По сути, исключение выдается ActivityThread.java
, более конкретно, метод performLaunchActivity()
в строке 2955
выдает исключение. Поскольку трассировка стека не включала в себя внутреннее class
вашего приложения, мы можем предположить, что исключение выдается в внешнем class
, который поставляется вместе с библиотекой, которую вы используете в своем проекте.
Если это так, то для решения этой проблемы можно выполнить следующие обходные пути -
- Изучите все зависимости библиотеки и подозрительные уценки
- Если вы используете настраиваемое представление (например, AdView) из внешней библиотеки, эта библиотека, скорее всего, вызовет этот сбой
- Обновите все сторонние библиотеки до последней версии, поскольку сбой в последних ОС вызывает
- Посмотрите в официальной документации, чтобы правильно реализовать эти библиотеки. Например, страница устранения неполадок на веб-сайте SDK может помочь решить эту проблему. Например, Dynamsoft Camera SDK уже решил эту проблему здесь
Посмотрите в трекер проблем библиотек для этой проблемы. Например, в библиотеке Android-Permission закрыт с точно таким же журналом.
Если ваш проект реагирует на нативные, здесь идет длинное обсуждение here
Предложение: я хочу добавить еще несколько строк с предложением @Martin Zeitler об использовании Crashlytics.
Я рекомендую вам настроить ваш сбой в Firebase Crashlytics Отчеты. Потому что иногда одного лишь следа стека недостаточно для воспроизведения авария.
С помощью функции настройки вы сможете получить,
Что, безусловно, поможет вам восстановить аварию и исправить ее.
Ответ 3
Введение
Для людей, говорящих:
did you resolve this issue? It a rising crash in my app as well – Bao Le Feb 6 at 8:36
did anybody resolve this issue? – AwaisMajeed Feb 9 at 13:15
Also happening to me. =( – masterlopau Feb 26 at 1:51
do this solved? – Vengat Jul 19 at 5:55
Есть ли у У вас дополнительный журнал причин? Это очень помогло бы.
Это ваш журнал сбоев:
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
at android.app.ActivityThread.-wrap11 (Unknown Source)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
at android.os.Handler.dispatchMessage (Handler.java:105)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6938)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
Сравните с этим журналом сбоев (идентичные номера строк и поток кода):
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
at android.app.ActivityThread.-wrap11 (Unknown Source)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
at android.os.Handler.dispatchMessage (Handler.java:105)
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)
Эта строка отличается:
at java.lang.reflect.Method.invoke (Method.java)
и:
at java.lang.reflect.Constructor.newInstance0 (Native Method)
с журналом дополнительной причины:
Caused by: android.support.v4.app.i$b:
at android.support.v4.app.i.instantiate (Fragment.java:386)
at android.support.v4.app.k.a (FragmentContainer.java:33)
at android.support.v4.app.s.a (FragmentState.java:79)
at android.support.v4.app.o.a (FragmentManager.java:3080)
at android.support.v4.app.l.a (FragmentController.java:152)
at android.support.v4.app.j.onCreate (FragmentActivity.java:330)
at host.exp.exponent.experience.f.onCreate (ReactNativeActivity.java:140)
at host.exp.exponent.experience.a.onCreate (BaseExperienceActivity.java:79)
at host.exp.exponent.experience.ExperienceActivity.onCreate (ExperienceActivity.java:160)
at host.exp.exponent.experience.ShellAppActivity.onCreate (ShellAppActivity.java:22)
at android.app.Activity.performCreate (Activity.java:7174)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2908)
Caused by: java.lang.reflect.InvocationTargetException:
at java.lang.reflect.Constructor.newInstance0 (Native Method)
at java.lang.reflect.Constructor.newInstance (Constructor.java:334)
at android.support.v4.app.i.instantiate (Fragment.java:364)
Caused by: java.lang.IllegalStateException:
at abi30_0_0.host.exp.exponent.modules.api.screens.Screen$ScreenFragment.<init> (Screen.java:19)
ПРИМЕЧАНИЕ в android.support.v4.app
строках.
См. Android-приложение случайным образом вылетает при открытии приложения
Исправления
Пакеты классов android.support или суффикс * Compat
(Я) Эта проблема имеет множество причин из моего поиска в Интернете. Распространенной причиной, по-видимому, является использование android.support class packages
или наличие *Compat suffix
. Просмотрите свои файлы build.gradle
для android.support.v4
и т.д...
(ii) Поскольку иногда это не происходит при тестировании, я полагаю, что только при развертывании android.support.v4
и т.д. используется проблемная библиотека устройств на некоторых устройствах или API.
Примечание: с выпуском Android 9.0 (API level 28)
появился новый версия библиотеки поддержки под названием AndroidX, которая является частью Jetpack. Библиотека AndroidX
содержит существующую библиотеку поддержки а также включает в себя последние компоненты Jetpack
.
Вы можете продолжать использовать библиотеку поддержки. Исторические артефакты (версии 27
и более ранние, и упакованные как android.support.*
) останется доступным на Google Maven
. Тем не менее, все новые библиотеки разработка будет происходить в библиотеке AndroidX
.
Мы рекомендуем использовать библиотеки AndroidX во всех новых проектах. Вы Также следует рассмотреть возможность переноса существующих проектов в AndroidX
. Настройка библиотеки поддержки
Библиотеки поддержки теперь доступны через Google Maven
репозиторий. Мы больше не поддерживаем загрузку библиотек через SDK Manager
, и эта функциональность скоро будет удалена..
Примечание. После включения библиотеки поддержки в проект приложения мы настоятельно рекомендуем вам уменьшить, запутать и оптимизировать свой приложение для выпуска. В дополнение к защите вашего исходного кода с запутывание, сжатие удаляет неиспользуемые классы из любых библиотек, которые вы включить в ваше приложение, которое сохраняет размер загрузки вашего приложение как можно меньше.
Примечание: если вы включаете несколько библиотек поддержки, минимальный SDK версия должна быть самой высокой версией, требуемой любым из указанных библиотеки. Например, если ваше приложение включает в себя v14
Preference
Библиотека поддержки и библиотека v17
Leanback
, ваша минимальная версия SDK должно быть 17
или выше.
Смотрите также:
Пакеты поддержки библиотеки
возможности
(2) реагировать на родные экраны
Это связано с реагировать на родные экраны, и у них есть обходной путь для пожалуйста, посмотрите на эту проблему:
Android вылетает недетерминированно при восстановлении из фона - veedeo.
Ответ 4
Я получаю ту же ошибку. Я решил это, может быть, это помогает некоторым людям:
Проблема была в моей земле /tooldbar.xml. Я перешел на библиотеку Androidx. Я решил свою проблему, меняя проблемные XML файлы.
Не используйте:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
....
....
</android.support.v4.widget.DrawerLayout>
Вместо этого используйте:
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
....
....
</androidx.drawerlayout.widget.DrawerLayout>