v4.0.0
This is a major release which adds a number of new features to the library. The minimum SDK version supported by Bugsnag is now API 14.
Breaking Changes
Identifying devices and users (unless overridden) is now captured and persisted through a per-install generated UUID, replacing use of Settings.Secure.ANDROID_ID
. As a result, existing errors may see doubled user counts if they continue to happen. If this is an issue, see the upgrade guide for more information and a workaround.
Enhancements
-
Support loading different API keys for different product flavors, through manifest placeholders
-
Support custom HTTP Error Reporting clients, by allowing custom implementations of
ErrorReportApiClient
-
Add nullability annotations throughout application
-
Any exceptions caused by StrictMode will automatically add the policy violation type to the Error Report's metadata
-
All tests have been updated to use JUnit 4 rather than
AndroidTestCase
-
Javadoc for the public API is now hosted on Github Pages
-
Breadcrumbs are automatically logged for each callback in the Activity Lifecycle, for all activities
-
Breadcrumbs are automatically logged for most System Intents (e.g.
android.intent.action.CONFIGURATION_CHANGED
) -
Optimize how reports are sent relative to network connectivity to improve battery life
-
Added documentation on how Breadcrumbs can be setup to track the Fragment Lifecycle
-
Added Kotlin example app and documentation
-
Disable logs by default on release builds
Bug Fixes
-
Handle
RejectionExecutionException
by writing unqueued Error reports to disk
Damian Wieczorek -
Handle IllegalStateException caused by
CharsetEncoder
on Android 6.0
Ben Lee -
Each implementation of
beforeNotify()
is now only called once, in the order in which it was added
jermainedilao -
By default, the User ID is now a per-install UUID, whereas previously
Settings.Secure.ANDROID_ID
was used
Martin Georgiev -
Update Gradle dependencies
Frieder Bluemle