This implementation completely replaces the old one (based on a watchdog) on devices running Android 11 and above:
New implementation provides more precise ANR events/ANR rate detection as well as system thread dump information. The new implementation reports ANRs exactly as Google Play Console, without producing false positives or missing important background ANR events.
However, despite producing many false positives, the old implementation is capable of better enriching ANR errors (which is not available with the new implementation), for example:
Capturing screenshots at the time of ANR event;
Capturing transactions and profiling data corresponding to the ANR event;
Auxiliary information (such as current memory load) at the time of ANR event.
If you would like us to provide support for the old approach working alongside the new one on Android 11 and above (e.g. for raising events for slow code on main thread), consider upvoting this issue.
The old watchdog implementation will continue working for older API versions (Android < 11)
Open up TransactionOptions, ITransaction and IHub methods allowing consumers modify start/end timestamp of transactions and spans (#2701)
Send source bundle IDs to Sentry to enable source context (#2663)
For more information on how to enable source context, please refer to #633
Use configureScope instead of withScope in Hub.close(). This ensures that the main scope releases the in-memory data when closing a hub instance. (#2688)
Remove null keys/values before creating concurrent hashmap in order to avoid NPE (#2708)
Exclude SentryOptions from R8/ProGuard obfuscation (#2699)
This fixes AGP 8.+ incompatibility, where full R8 mode is enforced
This implementation completely replaces the old one (based on a watchdog) on devices running Android 11 and above:
New implementation provides more precise ANR events/ANR rate detection as well as system thread dump information. The new implementation reports ANRs exactly as Google Play Console, without producing false positives or missing important background ANR events.
However, despite producing many false positives, the old implementation is capable of better enriching ANR errors (which is not available with the new implementation), for example:
Capturing screenshots at the time of ANR event;
Capturing transactions and profiling data corresponding to the ANR event;
Auxiliary information (such as current memory load) at the time of ANR event.
If you would like us to provide support for the old approach working alongside the new one on Android 11 and above (e.g. for raising events for slow code on main thread), consider upvoting this issue.
The old watchdog implementation will continue working for older API versions (Android < 11)
Open up TransactionOptions, ITransaction and IHub methods allowing consumers modify start/end timestamp of transactions and spans (#2701)
Send source bundle IDs to Sentry to enable source context (#2663)
For more information on how to enable source context, please refer to #633
Use configureScope instead of withScope in Hub.close(). This ensures that the main scope releases the in-memory data when closing a hub instance. (#2688)
Remove null keys/values before creating concurrent hashmap in order to avoid NPE (#2708)
Exclude SentryOptions from R8/ProGuard obfuscation (#2699)
This fixes AGP 8.+ incompatibility, where full R8 mode is enforced
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps io.sentry:sentry from 6.18.1 to 6.19.0.
Release notes
Sourced from io.sentry:sentry's releases.
Changelog
Sourced from io.sentry:sentry's changelog.
Commits
7aa3531
release: 6.19.0360297d
Exclude SentryOptions from obfuscation (#2699)6a11214
Add API to set custom sentry-native sdk name (#2704)70ef023
Send source bundle IDs to Sentry to enable source context (#2663)a78496a
Remove null keys/values before creating concurrent hashmap (#2708)5a573d4
Improve error output for envelope tests (#2706)e96a1b7
Open up some transaction methods (#2701)9fed939
Changed OnePlus 9 Pro to Samsung Galaxy S10+ in Saucelabs (#2705)ba90bd9
Bump github/codeql-action from 2.3.2 to 2.3.3 (#2702)2011dda
Android Profiler on calling thread (#2691)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)