android.os.DeadObjectException pojawia się w mojej grze na Androida

android.os.DeadObjectException pojawia się w mojej grze na Androida
KU
  • Rejestracja:około 16 lat
  • Ostatnio:6 miesięcy
  • Postów:164
0

Dostaję bardzo często ten błąd w mojej grze na Androida. Stack trace wygląda nastepująco:

Kopiuj
2020-11-07 11:05:51.916 3819-3855/? E/WindowManager: RemoteException occurs on reporting focusChanged, w=Window{a834684 u0 pl.jawegiel.endlessblow/pl.jawegiel.endlessblow.activities.Gra EXITING}
android.os.DeadObjectException
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(Binder.java:1145)
    at android.view.IWindow$Stub$Proxy.windowFocusChanged(IWindow.java:500)
    at com.android.server.wm.WindowState.reportFocusChangedSerialized(Unknown Source:41)
    at com.android.server.wm.WindowManagerService$H.handleMessage(Unknown Source:1754)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:214)
    at android.os.HandlerThread.run(HandlerThread.java:65)
    at com.android.server.ServiceThread.run(Unknown Source:12)

Nie wiem kiedy i gdzie to się dzieje.

Aby naprawić ten błąd otoczyłem całą metodę onCreate() blokiem try catch ale na próżno, żadne dodatkowe logi się nie wyświetliły.

Wyczytałem, że powinienem w takim przypadku nadpisać metodę onDestroy() ale w jaki sposób ona miałaby mi pomóc w znalezieniu martwego obiektu i gdzie ten błąd się pojawia i w jaki sposób ta nadpisana implementacja metody powinna wyglądać żeby wyprintować stack trace w logach?

Roman Mokrzan
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 22 godziny
  • Postów:159
1

Otoczenie czegokolwiek tryb catchem nie pomoze.

Tu masz odpowiedź czy tak się dzieje:
https://stackoverflow.com/a/13544505/2401535


KU
  • Rejestracja:około 16 lat
  • Ostatnio:6 miesięcy
  • Postów:164
0

@Roman Mokrzan: Piszą tam co to jest, a nie jak rozwiązać problem.

MD
  • Rejestracja:około 5 lat
  • Ostatnio:około 3 lata
  • Postów:25
0

DeadObjectException oznacza, że dany obiekt nie istnieje bo powiązany z nim proces został zabity. Więc jeśli proces Twojej aplikacji został ubity to żaden try catch tutaj nie pomoże.


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.