-
Fixed an issue where feature-flags were not always sent if an OnSendCallback was configured #1589
-
Fix a bug where api keys set in React Native callbacks were ignored #1592
-
Discarded unhandled exceptions are propagated to any previously registered handlers #1584
-
Fix SIGABRT crashes caused by race conditions in the NDK layer #1585
- New APIs to support forthcoming feature flag and experiment functionality. For more information, please see https://docs.bugsnag.com/product/features-experiments.
-
Explicitly define Kotlin api/language versions #1564
-
Build project with Kotlin 1.4, maintain compat with Kotlin 1.3 #1565
- Improve the memory use and performance overhead when handling the delivery response status codes #1558
- Harden ndk layer through use of const keyword #1566
-
Delete persisted NDK events earlier in delivery process #1562
-
Add null checks for strlen() #1563
-
Catch IOException when logging response status code #1567
- Bump compileSdkVersion to apiLevel 31 #1536
-
Flush in-memory sessions first #1538
-
Avoid unnecessary network connectivity change breadcrumb #1540 #1546
-
Clear native stacktrace memory in
bugsnag_notify_env
before attempting to unwind the stack #1543
-
Increase resilience of NDK stackframe method capture #1484
-
redactedKeys
now correctly apply to metadata on Event breadcrumbs #1526 -
Improved the robustness of automatically logged
ERROR
breadcrumbs #1531 -
Improve performance on the breadcrumb storage "hot path" by removing Date formatting #1525
-
Avoid reporting false-positive background ANRs with improved foreground detection #1429
-
Prevent events being attached to phantom sessions when they are blocked by an
OnSessionCallback
#1434 -
Plugins will correctly mirror metadata added using
addMetadata(String, Map)
#1454
- Capture and report thread state (running, sleeping, etc.) for Android Runtime and Native threads #1367 #1390
-
Capture breadcrumbs for OkHttp network requests #1358 #1361 #1363 #1379
-
Update project to build using Gradle/AGP 7 #1354
-
Increased default breadcrumb collection limit to 50 #1366
-
Support integer values in buildUuid #1375
-
Use SystemClock.elapsedRealtime to track
app.durationInForeground
#1378
-
The
app.lowMemory
value always report the most recentonTrimMemory
/onLowMemory
status #1342 -
Added the
app.memoryTrimLevel
metadata to report a description of the latestonTrimMemory
status #1344 -
Added
STATE
Breadcrumbs foronTrimMemory
events #1345 -
The
device.totalMemory
anddevice.freeMemory
values report device-level memory, andapp.memoryUsage
,app.totalMemory
,app.app.freeMemory
, andapp.memoryLimit
report VM level memory status #1346
- Add Bugsnag listeners for StrictMode violation detection #1331
- Address pre-existing StrictMode violations #1328
-
Prefer
calloc()
tomalloc()
in NDK code #1320 -
Ensure correct value always collected for activeScreen #1322
- Capture process name in Event payload #1318
-
Avoid unnecessary BroadcastReceiver registration for monitoring device orientation #1303
-
Register system callbacks on background thread #1292
-
Fix rare NullPointerExceptions from ConnectivityManager #1311
-
Respect manual setting of context #1310
-
Handle interrupt when shutting down executors #1315
-
React Native: allow serializing enabledBreadcrumbTypes as null #1316
-
Unity: Properly handle ANRs after multiple calls to autoNotify and autoDetectAnrs #1265
-
Cache value of app.backgroundWorkRestricted #1275
-
Optimize execution of callbacks #1276
-
Optimize implementation of internal state change observers #1274
-
Optimize metadata implementation by reducing type casts #1277
-
Trim stacktraces to <200 frames before attempting to construct POJOs #1281
-
Use direct field access when adding breadcrumbs and state updates #1279
-
Avoid using regex to validate api key #1282
-
Discard unwanted automatic data earlier where possible #1280
-
Enable ANR handling on immediately if started from the main thread #1283
-
Include
app.binaryArch
in all events #1287 -
Cache results from PackageManager #1288
-
Use ring buffer to store breadcrumbs #1286
-
Avoid expensive set construction in Config constructor #1289
-
Replace calls to String.format() with concatenation #1293
-
Optimize capture of thread traces #1300
-
Unity: add methods for setting autoNotify and autoDetectAnrs #1233
-
Including bugsnag.h in C++ code will no longer cause writable-strings warnings 1260
-
Small performance improvements to device and app state collection 1258
-
NDK: lowMemory attribute is now reported as expected 1262
-
Don't include loglog.so in ndk plugin builds performed on Linux 1263
-
Avoid unnecessary collection of Thread stacktraces 1249
-
Prevent errors in rare cases where either ConnectivityManager or StorageManager is not available 1251
-
Change the Bugsnag-Internal-Error header to "bugsnag-android" 1252
-
Prevent resource exhaustion when Throwable cause chains are recursive 1255
-
Added Date support to ObjectJsonStreamer 1256
-
Guard against exceptions with null stack traces #1239
-
Fix bug that terminated the app when multiple ANRs occur #1235
-
Prevent rare NPE in log message #1238
-
Prevent rare NPE when capturing thread traces #1237
-
Catch exceptions thrown by Context.registerReceiver to prevent rare crashes #1240
-
Fix possible NegativeArraySizeException in crash report deserialization #1245
-
Add projectPackages field to error payloads #1226
-
Fix deserialization bug in persisted NDK errors #1220
-
Improve detection of rooted devices #1194 #1195 #1198 #1200 #1201
-
Bump compileSdkVersion to apiLevel 30 #1202
-
Collect whether the system has restricted background work for the app #1211
Configuration#launchCrashThresholdMs
is deprecated in favour ofConfiguration#launchDurationMillis
- Add public API for crash-on-launch detection #1157 #1159 #1165 #1164 #1182 #1184 #1185 #1186 #1180 #1188 #1191
- Fix for bad pointer access crash in JNI deliverReportAtPath #1169
- Support native stack traces in the ANR plugin #972
- Check additional JNI calls for pending exceptions and no-op #1142
- Move free() call to exit block #1140
- Replace strncpy() usage with safe function call #1149
- Prevent NPE when delivering internal error reports #1150
- Further robustify string copying and JNI exception checks #1153
-
Check additional JNI calls for pending exceptions and no-op #1133
-
Fix rare crash when loading device ID #1137
The packaging for this version was incorrect so it should not be used.
-
Check internal JNI calls for pending exceptions and no-op #1088 #1091 #1092 #1117
-
Add global metadata to ANR error reports #1095
- Fix regression in 5.5.1 where ANR and NDK detection was not functional for apps using ProGuard/R8 or DexGuard #1096
-
Alter ANR SIGQUIT handler to stop interfering with Google's ANR reporting, and to avoid unsafe JNI calls from within a signal handler #1078
-
Alter HTTP requests to stop using chunked transfer encoding #1077
-
Allow null device IDs, preventing rare crash in Bugsnag initialization #1083
This release supports initializing Bugsnag in multi processes apps. If your app uses Bugsnag in multiple processes, you should initialize Bugsnag
with a unique persistenceDirectory
value for each process. Please see the docs for further information.
-
Store user information in persistenceDirectory #1017
-
Use consistent device ID for multi process apps #1013
-
Create synchronized store for user information #1010
-
Add persistenceDirectory config option for controlling event/session storage #998
-
Add configuration option to control maximum number of persisted events/sessions #980
-
Increase kotlin dependency version to 1.3.72 #1050
-
Make
event.unhandled
overridable for NDK errors #1037 -
Make
event.unhandled
overridable for React Native errors #1039 -
Make
event.unhandled
overridable for JVM errors #1025
- Prevent potential SHA-1 hash mismatch in Bugsnag-Integrity header for session requests #1043
- Prevent potential SHA-1 hash mismatch in Bugsnag-Integrity header #1028
- Add integrity header to verify Error and Session API payloads have not changed #978
-
Flush persisted sessions on launch and on connectivity changes #973
-
Increase breadcrumb time precision to milliseconds #954
-
Default to allowing requests when checking connectivity #970
-
Support changing NDK Event's api key in OnErrorCallback #964
-
Avoid crash when initializing bugsnag in attachBaseContext #953
-
Prevent ConcurrentModificationException when setting redactedKeys #947
-
Support changing Event's api key in OnErrorCallback #928
-
Ensure device ID is set separately to the user ID #939
-
Improve stack traces and grouping for promise rejections on React Native < 0.63.2 #940
-
Prevent ConcurrentModificationException thrown from Metadata class #935
-
Prevent incorrect merge of nested maps in metadata #936
- Improve stack traces and grouping for React Native promise rejections #937
-
Add accessor for breadcrumb list on Client #924
-
Test improvement: removed conditional operator test smell #925
- Keep name of class for use in reflection #927
The following alterations have been made to support the React Native notifier:
-
Split updateMetadata method into two separate add/clear methods #918
-
Refactor event deserialiser to ensure unhandled value is retained #917
-
Retain unhandled value when parsing a JS event #914
-
Prevent duplicate notifier dependencies being added #911
-
Attempt delivery of promise rejections immediately #912
-
Always set config.redactedKeys on Event #913
-
Add null check when loading data from manifest #878
-
Fix swapped device freeMemory and freeDisk values #903
-
Avoid attempting to flush unhandled error reports in same session #902
The following alterations have been made to support the React Native notifier:
-
Prevent duplicate notifier dependencies being added #911
-
Respect pre-populated fields on
Event
when notifying #906 -
Create observer before registering plugin #874
-
app.type
event serialisation differs from config #909 -
Pass device and app metadata to react native #910
This version contains many breaking changes. It is part of an effort to unify our notifier libraries across platforms, making the user interface more consistent, and implementations better on multi-layered environments where multiple Bugsnag libraries need to work together (such as React Native).
Please see the upgrade guide for details of all the changes and instructions on how to upgrade.
- Remove unnecessary uses-library android.test.runner from AndroidManifest #783
-
Allow disabling previous signal handler invocation for Unity ANRs #743
-
Avoid polling when detecting ANRs by invoking JNI from SIGQUIT handler #741
- Fix: address CVE-2019-10101 by increasing Kotlin version to 1.3.61 #739
- Catch throwables when invoking methods on system services #623
- Fix possible crash when recording reports and breadcrumbs containing values using different text encodings or UTF-8 control characters, followed by a C/C++ crash. #584
- Fix crash when calling
NativeInterface.clearTab()
(from an integration library) #582 - Fix abort() in native code when storing breadcrumbs with null values in metadata #510
- Fix potential segfaults when adding breadcrumb with NDK #546
- Convert metadata to map when notifying the NDK observer #513
- Prevent overwrite of signal mask when installing ANR handler #520
- Fix possible null pointer exception when creating a breadcrumb without metadata #585
- Fix a packaging issue on Maven Central in v4.21.0
-
Collect additional data in internal error reports #612
-
Allow overriding the versionCode via Configuration #610
-
Delete cached error reports if an Exception is thrown during disk IO, preventing delivery of empty/partial reports on the next app launch. #609
-
Prevent internal error reporting of FileNotFoundException during serialization #605
-
Record StorageManager cache behaviour in internal error reports #588
-
Delete empty files left in cache directory, preventing an erroneous source of minimal error reports #591
-
Report internal errors when serialization fails #581
-
Buffer IO when reading from cached error files, improving SDK performance #573
-
Prevent internal error reporting of FileNotFoundException during Delivery #594
-
flushOnLaunch() does not cancel previous requests if they timeout, leading to potential duplicate reports #593
-
Alter value collected for device.freeDisk to collect usable space in internal storage, rather than total space in internal/external storage #589
-
Buffer io when reading from cached error file #573
-
Fix possible crash when recording reports and breadcrumbs containing values using different text encodings or UTF-8 control characters, followed by a C/C++ crash. #584
-
Fix deserialization of custom stackframe fields in cached error reports #576
-
Fix potential null pointer exception if
setMetaData
is called with a null value
- Report internal SDK errors to bugsnag #570
- Improve ANR error message information #553
- Fix potential segfaults when adding breadcrumb with NDK #546
- Fix NPE causing crash when reporting a minimal error #534
This release modularizes bugsnag-android
into 3 separate artifacts: for JVM (Core), NDK, and ANR error
detection. You should use v4.5.2 or above of the bugsnag android gradle plugin in order to use this version, then add a compile-time dependency on either bugsnag-android
or bugsnag-android-ndk
as before.
If you do not wish to use the NDK/ANR artifacts, it is possible to exclude these via gradle. You
should also set detectNdkCrashes
and detectAnrs
to false on the Configuration
object supplied
during Bugsnag.init()
.
implementation("com.bugsnag:bugsnag-android:$version") {
exclude group: "com.bugsnag", module: "bugsnag-plugin-android-anr"
exclude group: "com.bugsnag", module: "bugsnag-plugin-android-ndk"
}
- Modularise bugsnag-android into Core, NDK, and ANR artifacts #522
- Prevent overwrite of signal mask when installing ANR handler #520
This release adds a compile-time dependency on the Kotlin standard library. This should not affect the use of any API supplied by bugsnag-android.
- Use NetworkCallback to monitor connectivity changes on newer API levels #501
- Send minimal error report if cached file is corrupted/empty #500
- Remove deprecated interfaces from API #514
- Fix abort() in native code when storing breadcrumbs with null values in metadata #510
- Convert metadata to map when notifying the NDK observer #513
bugsnag-android
now supports detecting and reporting C/C++ crashes without a separate library (previously bugsnag-android-ndk
was required for native error reporting).
bugsnag-android
and bugsnag-android-ndk
have essentially been merged. The only difference is that in bugsnag-android-ndk
, NDK crash detection is enabled by default. To enable it in bugsnag-android
, the configuration option detectNdkCrashes
should be set to true.
After the next major release bugsnag-android-ndk
will no longer be published, so it is recommended that you migrate to the bugsnag-android
artefact.
-
Improve ANR detection by using a signal handler to detect
SIGQUIT
events, removing dependence on "in foreground" calculations. This change should remove false positives. This change deprecates the configuration optionssetAnrThresholdMs
/getAnrThresholdMs
as they now have no effect and the underlying OS ANR threshold is used in all cases. #490 -
Add
detectNdkCrashes
configuration option to toggle whether C/C++ crashes are detected #491 -
Reduce AAR size #492
-
Make handledState.isUnhandled() publicly readable #496
- Disable ANR detection by default #484
-
Remove
RINGER_MODE_CHANGED
action from broadcast receiver, which fixes aSecurityException
thrown in Instant Apps #481 -
Reduce sensitivity of Foreground Detection, reducing potential ANR false positives #482
-
Alter In foreground calculation #466
-
Migrate version information to device.runtimeVersions #472
-
Add internal api for mutating session payload before sending #472
-
Resolve pre-existing Android Inspection violations #468
- [NDK] Fix possible null pointer dereference
- [NDK] Fix possible memory leak if bugsnag-android-ndk fails to successfully parse a cached crash report
- [NDK] Fix possible memory leak when using
bugsnag_leave_breadcrumb()
orbugsnag_notify()
-
Ensure boolean object from map serialised as boolean primitive in JNI #452
-
Prevent NPE occurring when calling resumeSession() #444
-
Read projectPackages array when serialising error reports #451
- Add stopSession() and resumeSession() to Client #429
-
Prevent overwriting config.projectPackages if already set #428
-
Fix incorrect session handledCount when notifying in quick succession #434
-
[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