-
[NDK] Improve support for C++ exceptions, adding the exception class name and description to reports and improving the stacktrace quality #412
-
Update vendored GSON dependency to latest available version #415
-
Fix cached error deserialisation where the Throwable has a cause #418
-
Refactor error report deserialisation #419
-
Fix unlikely initialization failure if a device orientation event listener cannot be enabled
-
Cache result of device root check #411
-
Prevent unnecessary free disk calculations on initialisation #409
-
Improve kotlin support by allowing property access #393
-
Added additional nullability annotations to public API #395
-
Migrate metaData.device.cpuAbi to device.cpuAbi in JSON payload #404
-
Add binary architecture of application to payload #389
-
Prevent errors from leaving a self-referencing breadcrumb #391
-
Fix calculation of durationInForeground when autoCaptureSessions is false #394
-
Prevent Bugsnag.init from instantiating more than one client #403
-
Make config.metadata publicly accessible #406
- Handle null values in MetaData.mergeMaps, preventing potential NPE #386
- [NDK] Fix regression in 4.9.0 which truncated stacktraces on 64-bit devices to a single frame #383
- Allow setting context to null from callbacks #381
- Add a callback to allow modifying reports immediately prior to delivery, including fatal crashes from native C/C++ code. For more information, see the callback reference. #379
- [NDK] Improve stack trace quality for signals raised on ARM32 devices #378
- [NDK] Fix a packaging issue on Maven Central in v4.8.0
This release includes new versions of both bugsnag-android and bugsnag-android-ndk, which will be released at the same time and with the same version number going forward.
The NDK library has been rebuilt from the ground up and will use the same version number as bugsnag-android.
- [NDK] Improve stack trace quality for all native crashes. There should be significantly more crash-time information, across the board but especially on newer API levels.
- [NDK] Reduce memory usage
- [NDK] Add support for session information
- [NDK] Add support for unhandled report tracking
- Capture trace of error reporting thread and identify with boolean flag #355
- Set maxBreadcrumbs via Configuration rather than Client #359
- Catch Exception within DefaultDelivery class #361
- Add Null check when accessing system service #367
-
Android P compatibility fixes - ensure available information on StrictMode violations is collected #350
-
Disable BuildConfig generation #343
-
Add consumer proguard rules for automatic ProGuard configuration without the Bugsnag gradle plugin #345
-
Internal refactor of app/device data serialisation
This release alters the behaviour of the notifier to track sessions automatically.
A session will be automatically captured on each app launch and sent to https://sessions.bugsnag.com. If you
use Bugsnag On-Premise, it is now also recommended that you set your notify and session endpoints
via config.setEndpoints(String notify, String sessions)
.
- Enable automatic session tracking by default #314
- Trim long stacktraces to max limit of 200 #324
-
Refine automatically collected breadcrumbs to a commonly useful set by default #321
-
Ensure that unhandled error reports are always sent immediately on launch for Android P and in situations with no connectivity. #319
Deprecation notice:
SessionTrackingApiClient and ErrorApiClient are now deprecated in favour of the Delivery interface.
If you configure a custom HTTP client with Bugsnag, it is recommended that you migrate over to this new API.
Further information is available in the configuration option reference.
and class documentation for Delivery
- Expose Delivery API interface for configuring custom HTTP clients #299
- Use buffered streams for IO (perf improvement) #307
-
Avoid adding extra comma separator in JSON if File input is empty or null #284
-
Thread safety fixes to JSON file serialisation #295
-
Prevent potential automatic activity lifecycle breadcrumb crash #300
-
Fix serialisation issue with leading to incorrect dashboard display of breadcrumbs #306
- 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