#java #android #activity-manager
#java #Android #activity-manager
Вопрос:
Мое приложение для Android автоматически завершается после запуска в течение некоторого времени (1 час), это журнал, который выводится на консоль, когда процесс завершается. Process <package name> (PID 21659) has died
и есть другие службы, которые были отключены до того, как мое приложение было отключено, которые не связаны с моим приложением. Это из-за нехватки ресурсов процессора?
ЖУРНАЛЫ
09-10 17:34:49.959 1601 20644 I ActivityManager Process com.qti.csm (pid 20762) has died
09-10 17:34:49.959 1601 20644 D ActivityManager cleanUpApplicationRecord -- 20762
09-10 17:34:49.960 1601 20644 W ActivityManager Scheduling restart of crashed service com.qti.csm/.securityLog.RunTask in 66531ms
09-10 17:34:50.670 1601 13143 I ActivityManager Process com.razorlabs.cpumeter (pid 23212) has died
09-10 17:34:50.670 1601 13143 D ActivityManager cleanUpApplicationRecord -- 23212
09-10 17:34:50.680 1601 13143 W ActivityManager Scheduling restart of crashed service com.razorlabs.cpumeter/.services.ServiceWorker in 75810ms
09-10 17:34:50.695 1601 9564 I ActivityManager Process com.android.inputmethod.latin (pid 23423) has died
09-10 17:34:50.695 1601 9564 D ActivityManager cleanUpApplicationRecord -- 23423
09-10 17:34:50.695 1601 9564 W ActivityManager Scheduling restart of crashed service com.android.inputmethod.latin/.LatinIME in 85795ms
09-10 17:34:50.774 1601 1601 W InputMethodManagerService Session failed to close due to remote exception
09-10 17:34:50.774 1601 1601 W InputMethodManagerService android.os.DeadObjectException
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at android.os.BinderProxy.transactNative(Native Method)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at android.os.BinderProxy.transact(Binder.java:615)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.internal.view.IInputMethodSession$Stub$Proxy.finishSession(IInputMethodSession.java:305)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.server.InputMethodManagerService.finishSessionLocked(InputMethodManagerService.java:1631)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.server.InputMethodManagerService.clearClientSessionLocked(InputMethodManagerService.java:1622)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.server.InputMethodManagerService.clearCurMethodLocked(InputMethodManagerService.java:1648)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.server.InputMethodManagerService.onServiceDisconnected(InputMethodManagerService.java:1667)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1469)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1483)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at android.os.Handler.handleCallback(Handler.java:751)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at android.os.Handler.dispatchMessage(Handler.java:95)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at android.os.Looper.loop(Looper.java:154)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.server.SystemServer.run(SystemServer.java:363)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.server.SystemServer.main(SystemServer.java:230)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at java.lang.reflect.Method.invoke(Native Method)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
09-10 17:34:50.774 1601 1601 W InputMethodManagerService at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
ActivityManager Process android.ext.services (pid 2274) has died
ActivityManager Process com.qualcomm.qcrilmsgtunnel (pid 2028) has died
ActivityManager Process com.android.smspush (pid 2093) has died
Информация об процессоре
устройства:: Qualcomm snapdragon 625
Операционная система: Android N
Комментарии:
1. Ваше приложение находится на переднем плане? У вас запущено постоянное уведомление?
2. Привет, chrylis, мое приложение переходит в фоновый режим после завершения процесса, и у меня запущена служба переднего плана, но это не постоянная служба.
Ответ №1:
Используете ли вы объект PackageManager с помощью каких-либо изменений? У меня была такая же проблема, и оказалось, что при использовании этого объекта есть странная ошибка, если вы используете его слишком часто, он может «умереть» и привести к тому, что ваше приложение также получит «исключение мертвого объекта». Если нет, я бы рекомендовал вам попробовать закомментировать строки, которые вы могли добавить до этого исключения, и попытаться выяснить, что вызывает эту проблему. Кроме того, если возможно предоставить нам код, это помогло бы
Ответ №2:
Дэн Барух, спасибо за ответ. Я обнаружил, что в моем коде JNI произошла утечка памяти, из-за чего Android отключает мои сервисы и приложение. И странная часть заключается в том, что утечка памяти происходит очень медленно, и нет журналов, в которых говорится, что это происходит из-за нехватки памяти