Skip to content

v4.0.0

Compare
Choose a tag to compare
@kattrali kattrali released this 15 Aug 18:29
· 5018 commits to next since this release

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