- Prevent duplicate reports being delivered in low connectivity situations #270
- Fix possible NPE when reading default metadata filters #263
- Prevent ConcurrentModificationException in Before notify/breadcrumb callbacks #266
- Ensure that exception message is never null #256
- Add payload version to JSON body #244
- Update context tracking to use lifecycle callbacks rather than ActivityManager #238
-
Fix possible ANR when enabling session tracking via
Bugsnag.setAutoCaptureSessions()
and connecting to latent networks. #231 -
Fix invalid payloads being sent when processing multiple Bugsnag events in the same millisecond #235
-
Re-add API key to error report HTTP request body to preserve backwards compatibility with older versions of the error reporting API #228
- Move capture of thread stacktraces to start of notify process
- Add configuration option to disable automatic breadcrumb capture
- Update Gradle Wrapper
- Parse manifest meta-data for Session Auto-Capture boolean flag
- Fix possible crash during session tracking initialization #220 James Smith
- Misc Session Tracking fixes and enhancements
- Adds support for tracking sessions and overall crash rate by setting
config.setAutoCaptureSessions
totrue
. In addition, sessions can be indicated manually usingBugsnag.startSession
#217
- Automatically capture breadcrumbs for new API 26 Intents
- Increase max breadcrumb limit
- Remove known noisy breadcrumbs from automatic capture
- Enqueue activity lifecycle events when initialisation not complete to prevent NPE
- Add example of using Bugsnag within a library module
- Compile annotations dependency as api rather than implementation
- Support handled state case for React Native
- Allow setting device ID to null
- Performance improvements to reduce execution time of
Bugsnag.init
- The SDK now automatically tracks whether an error is handled or unhandled.
- Fix for NPE in MetaData callback Boris
- Updated example app.
- Setting the maxSize of breadcrumbs now removes any surplus breadcrumbs.
- Crash reports on application startup are automatically sent synchronously on the next launch (configurable via
setLaunchCrashThresholdMs
).
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.
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.
-
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
-
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
-
Improve performance by using bounded
ThreadPoolExecutor
for asynchronousnotify()
calls Felipe Lima #145 -
Detect systemless root Matthias Urhahn #142
- Add support for interfacing with native code
- Cache unhandled exception reports prior to sending, send non-blocking Delisa Mason #139
-
Make
getContext
andclearUser
static methods Dave Perryman #132 -
Ensure fatal crashes are sent as blocking requests Simon Maynard #137
- Add support for sending reports using lambdas for customization Delisa Mason #123
-
Support optionally persisting user information between sessions using the configuration option
persistUserBetweenSessions
Dave Perryman #120 -
Support initializing Bugsnag with a pre-configured Configuration instance Dave Perryman #121
-
Add CPU/ABI information to device metadata Dave Perryman Crossle Song #119
-
Fix potentially misdirected error report when changing the endpoint soon after initializing Bugsnag Dave Perryman #121
-
Fix missing static modifier on
disableExceptionHandler
Niklas Klein #113
- Add access to new Breadcrumbs API Delisa Mason #111
- Limit the number of stored errors Duncan Hewett #97
-
Fix
ConcurrentModificationException
which could occur when saving breadcrumbs Duncan Hewett #98 -
Localize all numbers in error metrics Delisa Mason #100
-
Change distribution method to be .aar only Lars Grefer #91
-
Skip sending empty device data values Matthias Urhahn #96
-
Remove the need for synthetic methods Jake Wharton #87
- Add additional check to ensure the cache of uploaded errors are deleted #80
-
Fix exception which occurs when
appContext.getResources()
is null #78 -
Fix bug preventing
maxBreadcrumbs
from being set David Wu #70
- Add blocking API
- Fix NPE issue
- Concurrent adding to tabs
- Thread Safe DateUtils#toISO8601
- Silence harmless proguard warning
- Support buildUUID to distinguish between multiple builds with the same appId and versionCode
- Support projectPackages when proguard is used.
- Fix jailbroken % on Bugsnag dashboard.
- Prefer API keys passed to Client directly over those from AndroidManifest
- Fix NPE when unboxing in JsonStream (thanks @mattprecious)
- Allow setting Bugsnag API key in your AndroidManifest.xml
- Re-add
Error#getException
to allow access to exception in callbacks
- Add support for leaving developer-defined log messages called "breadcrumbs" to help understand what was happening in your application before each crash
- Removed dependency on
bugsnag-java
- Reduced memory usage, using lazy-loading and streaming
- Easier "top activity" tracking
- Device brand information is now collected (eg. "Samsung")
- SSL enabled by default
- Adding custom diagnostics (MetaData) is now easier to use
- Fixed app name detection
- Uses Android's new build system (gradle based)
- Added unit tests, automatically run on travis.ci
- Severity is now an Enum for type-safety
- Bump bugsnag-java dependency to fix prototype mismatch bug
- Add support for collecting thread-state information (enabled by default)
- Add support for beforeNotify callbacks
- Allow disabling of automatic exception handler
- Add support for sending a custom app version with
setAppVersion
- Send both
versionName
andversionCode
in the app tab
- Fix strictmode violation caused by hostname checking
- Prepare 'severity' feature for release
- Update bugsnag-java dependency, allows disabling of auto-notification
- Support severity
- Better format of notification payload
- Structure the data of notifications better
- Fixed bug in
BugsnagFragmentActivity
calling the wrong callbacks.
- Added missing
setProjectPackages
andsetFilters
static methods to theBugsnag
class.
- Added additional
Activity
parent classes to help collect debug information, added support for custom Activities.
- Improved memory usage when sending exceptions that were previously saved to disk
setNotifyReleaseStages
now defaults tonull
, to reduce confusion
- Fixed bug which caused notifications to be sent on the UI thread in some situations.
- Fixed bug which meant
setIgnoreClasses
was not respected.
- Added support for
setIgnoreClasses
to set which exception classes should not be sent to Bugsnag.
- Attempt to automatically detect releaseStage from the debuggable flag
- Android backward compatibility fixes, now works on Android 1.5+
- Fixed bug where session time wouldn't start counting until first exception
- Fixed missing apiKey in metrics, use java notifier's metrics sending
- Added
Bugsnag.addToTab
to replacesetExtraData
for sending meta-data with every exception - Reduced jar size
- Refactored to use the classes from
bugsnag-java
- Project is now available in Maven, and built using Maven
- Added support for metrics tracking (MAU/DAU)
- Added additional diagnostic information (network status, memory usage, gps status, time since boot, time since app load) to every notification
- Fixed some issues which might have caused error sending to fail
- Ensure empty exception files aren't created
- Fix bug with incorrect "caused by" exception names and messages
- Initial release