[Player model] Handle DeadSystemException #1937
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
One Line Summary
Catch
DeadSystemException
to prevent red herring crash reports.Details
Motivation
DeadSystemException
happens after a the app is in a bad state, not the root cause. Suppressing these as they are a red herring.Scope
Wrap Android APIs known to throw
DeadSystemException
in helper functions to handle this exception. This includes;getApplicationInfo
,getPackageInfo
, andisHuaweiMobileServicesAvailable
(seems to usegetPackageInfo
under its hood).What is a DeadSystemException
From Android's docs:
Also from Android's source code:
Since this exception is not the fault of the app (or SDK) there isn't anything the app (or SDK) can do to recover from such a state. Catching and ignoring these won't improve the end-user experience since the app is already being killed, however doing so will clean up the noise from crash statistics, hopefully allowing the developer to discover the root cause.
Testing
Unit testing
Manual testing
Tested with an Android 14 emulator, device subscribes and receives notifications. Also ensured disabling badges works. Also on a Android 6.0 emulator, ensuring the notification title defaults to the app label correctly.
Affected code checklist
Checklist
Overview
Testing
Final pass
This change is