Bugsnag v4.0.0 Release Notes

Release Date: 2017-08-15 // over 6 years ago
  • ๐Ÿš€ 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](UPGRADING.md#upgrade-from-3x-to-4x) โ†ช 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

    • 0๏ธโƒฃ 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