Skip to main content

Android SDK Changelog


May 24, 2023

  • Added support for Gradle 8


May 11, 2023

  • Fixed a build time error related to disableDependencyInjection property.


May 5, 2023

  • Fixed a build time error at build time for versions 5.17.1 and 5.18.0 in some specific scenarios and related with com.squareup.okhttp3:okhttp and dependencies.


May 4, 2023

  • Core Web vitals caputure from web views
  • The encoding for extracted file names is enabled for builds that use Android Gradle Plugin 4.2.1 and below. This handles build issues caused by 3rd party plugins that minify classes during the build phase.


Apr 27, 2023

  • Upgrade compileSDK to 33
  • Improvements on our CPU usage and data consumption of our delivery layer


Apr 04, 2023

  • Added the name and message of the Exception if it is used on logError or logHandledException methods.
  • Deprecated the current logPushNotification method and introduced a new one that fix compatibility issues.


Mar 21, 2023

  • Fix an error from 5.15.1 around identifying users.
  • Improvements in how data is collected after session ends, to avoid extending the app process duration.


Mar 17, 2023

  • Improvements in how data is collected after session ends, to avoid extending the app process duration.


Mar 7, 2023


This version has a known issue with Braze. If you need to use this specific version, you can avoid the known issue with the following configuration in your app/build.gradle file:

swazzler {
instrumentFirebaseMessaging = false
  • Fix first activity repeated in the timeline
  • Fixes a timing bug with ANR intervals where a check on monitorThreadLag was setting the start time to be in the beginning of an ANR interval.
  • Ignore useNewDependencyInstaller property from the swazzler block. It's now used as the unique mechanism to inject dependencies, so it's safe to remove it from your app/build.gradle file


Jan 27, 2023

  • Reduced ANRs being generated by EmbraceLogger class.
  • Added feature to capture network body information.


Jan 19, 2023

  • Fixed an issue on ndk symbols.
  • Fixed an ndk issue when building.


Jan 11, 2023

  • Capture CPU number of cores
  • Compress Proguard/R8 mapping files before uploading
  • Added logHandledException method


Dec 07, 2022

  • Automatically capture push notifications when the app is on foreground.
  • Added the ability to manually log push notifications.
  • Capture background activity
  • Power save mode changes track added


Dec 05, 2022

  • Added the ability to report the version of the Embrace React Native SDK being used.


Nov 20, 2022

  • It fixes a Gradle issue on anyone running Gradle < 6.2


Nov 28, 2022


This version has a known issue with Gradle < 6.2

  • Improved Embrace startup time


Nov 14, 2022

  • Fixed an internal exception when trying to access the jailbroken status of the device.


Nov 03, 2022

  • Improve NDK service logs to work with strict and integration mode
  • Improved the EmbraceSamples.verify() method
  • Added Profile Installer to support Baseline Profiles.


Oct 20, 2022

  • Fixed message for Ironsource and Moshi known issues.
  • Automate disabling dependency injection when using EDM4U.
  • Automate NDK Enabling for Unity and Native projects when value is default.
  • Added integration mode to identify potential issues with the SDK integration.
  • Rolled back the use of DefaultLifecycleObserver


Oct 18, 2022

  • Fixed an ANR occurring in React Native projects using a custom Javascript bundle URL.


Oct 03, 2022

  • New mechanism to auto-install Embrace dependencies. If you prefer to use the old mechanism, the new API can be disabled by setting the useNewDependencyInstaller property to false. You can check our documentation here


Oct 03, 2022

  • Fixed a lost backward compatibility with previous Unity SDK versions.
  • Fixed internal exception triggered when used androidX startup library in Unity builds.


Sep 22, 2022


This version has a known backward compatibility issue between the Unity SDK and the Android SDK

  • Removed capture_google attribute from the embrace-config.json file.


Sep 20, 2022

  • Prevent disk i/o strict mode violations for session caching.
  • Added a step to the automatic verification that validates that the SDK is receiving lifecycle events
  • Increment network timeout when uploading large mapping files.


Aug 30, 2022

  • Performance improvement: moved some disk I/O operations on startup to a worker thread.


Aug 25, 2022

  • Fixed a logic bug in how the previous signal handler was called that prevented native tombstones from being captured by the Android OS.
  • Fixed an issue that prevented the Swazzler to build on AGP versions greater or equal than 7.2.


Aug 17, 2022

  • Fixes a bug in our gradle plugin where the build sometimes failed with duplicate resource files
  • Fixes a minor bug where network intercepting triggers a log when it tries to intercept calls before Embrace is started.
  • Improve NDK crash report quality when other signal handlers are installed after Embrace has initialized


Aug 03, 2022

  • Fixes an issue where customers were having ClassNotFoundException: BuildEventsListenerRegistry for gradle versions < 6.1


Aug 02, 2022


This version has a known issue with Gradle < 6.1

  • Added Hermes support
  • Automatic integration: We added a method that does everything necessary to verify an integration in one call.
  • Added a feature flag that controls beta features. This can be manually disabled from the configuration.


Jul 18, 2022


This version has a known issue with Gradle < 6.1

  • Strict Mode was added to automatically capture serious local error logs to be sent as part of the session payload.
  • The background ANRs are not displayed by default anymore. They should be manually enabled through remote configuration.
  • Fixed an issue where the ANR duration was incorrectly reported with 1 second less.


Jun 30, 2022


This version has a known issue with Gradle < 6.1

  • ASM bytecode transformation API is now the default api.


Jun 10, 2022

  • Added support for symbols upload in Unity 2020, 2021, 2022.
  • Fixed symbols upload failure while searching .so files in a folder with another folder inside.
  • Added extra logging for NDK layer.
  • Fixed bytecode transformation with ASM.
  • Added improvement in order to skip swazzling if it's disabled for variant in old transform API.


May 27, 2022

  • Added extra logging for NDK crash.
  • Prevented NPE in native crash loading.
  • Fixed an issue in gradle task registration that was not letting the symbols files to upload.
  • React Native - Fixed an issue with the set of the bundle ID for OTA releases like CodePush


May 4, 2022

  • Fixed an issue where "Bytes in" and "Bytes out" where shown reversed when logging network requests manually.


May 2, 2022

  • Fixed a race condition that could lead to exceptions during SDK initialization.


April 22, 2022

  • Fixed an issue that prevented the SDK to use the traffic settings override for specific app versions.


April 08, 2022

  • Added backward compatibility up to AGP 3.4.0
  • Changed build ID resource injection to keep unchanged on non-minified builds.
  • Migrated to task configuration avoidance API's for task registration
  • Added improvements to SDK startup time
  • Upgrade Gson to 2.9.0.


Feb 07, 2022

  • Updated Kotlin to 1.4.32
  • Fixed stacktrace capture for React Native and Unity log messages
  • Added improvements to SDK startup time
  • Added support for encoding file names when unpacking jars to prevent clashes in case-insensitive file systems


Dec 21, 2021

  • Screenshots aren't captured by default. They should be manually requested by calling the proper methods of the SDK.


Nov 19, 2021

  • Upgrade Gson to 2.8.9
  • Added a new EmbraceCustomPathException to capture the proper custom path on connectivity errors


Oct 29, 2021

  • Added swazzling class skipping support for AGP 4.2+
  • Added swazzling rules generation support for AGP 4.2+
  • Fix an issue with ANRs caused while capturing network calls in the session


Oct 18, 2021

  • Fix an issue with missing network calls in the session


Oct 5, 2021

  • Added option to specify API key as an environment variable instead of in the config file
  • Cache device-related values that could take a long time to fetch on certain device types, to prevent ANRs.
  • Rolled back swazzling class skipping support from 4.11.0, which could cause certain network calls and taps to not be captured.
  • Removed ANDROID_ID as an input to the hashing function used create the device identifier.


Sep 1, 2021


This version has known issues and should not be used

  • Fixed a race-condition issue with the NDK crash capture that could lead to incomplete stacktrace capture
  • Added nullability decorators to improve usage from Kotlin
  • Added swazzling class skipping support for AGP 4.2+


Aug 16, 2021

  • Added support for custom Unity symbols archive name
  • Improved handling of JAR files that could not be swazzled


July 29, 2021

  • Fixed issue that could cause an ANR when capturing memory warnings.
  • Fixed issue that could cause SDK to start during an app cold start even when remote config should have disabled it.


July 15, 2021

  • Fixed compatibility issue with androidx.lifecycle 2.3.0+ when not starting the SDK on the main thread.


July 13, 2021

  • Fixed issue that could prevent capture of OkHTTP- and Volley-based network calls for certain configurations.
  • Prevent multiple attempts to add Embrace SDK dependency for certain configurations.


July 1, 2021

  • Fixed how SDK dependencies are injected, which could cause build errors for certain Gradle configurations.
  • Handle case where a project provides the same JAR twice to Gradle our Gradle transformer.
  • Fixed issue where a class could not be processed by our Gradle transformer when it contains a reference to an optional dependency that is not present in the app.


May 27, 2021

  • Fixed issue with NDK crash stack trace parsing that could fail for certain stack traces
  • Track JNI thread attachment for Unity


May 25, 2021

  • Removed all dependencies on JCenter
  • Added support for symbol upload for Unity 2020 non-exported apps


May 17, 2021

  • Fixed an issue with registering build tasks for React Native apps.


May 11, 2021

  • Fixed an issue where HTTP network calls made using the Java library could get disrupted during capture. This issue did not affect HTTPS calls or those made with Volley or OkHttp.


May 10, 2021

  • Fixed a compatibility issue with gradle 7.x.
  • Added support for automatic upload of NDK symbols for unexported Unity projects.


May 6, 2021

  • Fixed issue with bytes-in/-out values for manually recorded network calls on Unity.
  • Added exception message to manually-recorded network calls on Unity for network calls that had an error.


May 4, 2021

  • Added more flexible support for disabling swazzling based on variant.


April 30, 2021

  • Added support for Unity unhandled exceptions
  • Fixed issue with the upload of NDK symbols for Unity 2018 and injection of references to the symbols into the SDK


April 22, 2021

  • Moved from JCenter to Maven Central


April 9, 2021

  • Added method to allow overriding of the configured app ID to be overridden at runtime.
  • Modified Gradle plugin to use original JARs when no changes were needed to them. This addresses an issue with the kotlin-reflect module for Kotlin 1.4.10 and newer.
  • Improved Gradle plugin dependency injection approach to address rare race condition.
  • Fixed issue with parsing of config file that could cause changes to it to only be picked up on clean builds.
  • Fixed JSON parsing issue that could cause NDK crashes in Unity apps to be corrupted


March 18, 2021

  • Modified capture_request_content_length setting to also affect requests made with OkHTTP
  • Fixed issue that would remove Content-Length and Content-Encoding from certain captured requests
  • Send startup moment even if the app is in the foreground when the SDK is started
  • Support manual network request capture in Unity apps
  • Build will not complete if a corrupted Embrace configuration file is used and improved error output to simplify debugging of config issue


February 22, 2021

  • Added limits for number of logs per session: 250 error, 100 warning, 100 info (contact support to have these increased for your app).
  • Limit how many breadcrumbs are captured for a session at capture time rather than at the completion of a session. This limits the memory used to store breadcrumbs for a session.
  • Improved accuracy of startup moment timing by moving the start of the timer to earlier in the SDK startup process.
  • Fixed compatibility issues with AGP 4.1.x.
  • Added setting to allow disabling of automatic injection of SDK dependencies by the Gradle plugin. This is only needed for certain Unity build configurations.


February 18, 2021

  • Reverted relaxed AndroidX version requirements introduced in 4.6.6. since AndroidX 2.3.0+ caused issues.


February 10, 2021


This version has known issues and should not be used

  • Relaxed version requirements for AndroidX components


February 2, 2021

  • Improved SDK startup time.
  • Added Gradle task dependencies to support a single flavor anchoring tests for other variants.


January 22, 2021

  • Fixed issue that could cause session message to not be sent when the device had been in airplane mode and NDK crash support is enabled.


January 14, 2021

  • Fixed device ID generation to allow it to be used in automated tests.


January 12, 2021

  • Added configuration setting to disable capture of native network requests.


January 11, 2021

  • Added support for configuration files for product flavors.
  • Fixed bug that could cause a crash when network request size capture was enabled for native requests.


December 14, 2020

  • Added support for Unity applications.
  • Added debug logging mode.


October 21, 2020

  • Fixed dependency resolution issues with AGP 4.1.0+.


October 1, 2020

  • Fixed capture of ANR stacktraces for Android 7 and earlier.
  • Fixed Gradle plugin compatibility with AGP 4.1.0-rc1.


September 17, 2020

  • Added options to disable capture of web views and web view query parameters.
  • Truncate ANR stack traces to 100 lines.


September 9, 2020

  • Fixed issue with setting user identity on clean installs (introduced in 4.5.2)


Use 4.5.3 since it contains a bugfix for a critical bug introduced in this release

September 2, 2020

  • Capture additional metrics
  • Capture user info for NDK crashes
  • Enable ANR stacktrace capture by default for all users
  • Fixed issue with ANR stacktrace capture that could attribute an ANR to the session after it occurred
  • Fixed issue with Proguard/R8 upload that could prevent upload of mapping files for flavors


August 10, 2020

  • Added build option to disable swazzling of specific classes and/or jars
  • Improved performance of serializing sessions with large numbers of recorded network calls


July 24, 2020

  • Added configuration to disable swazzling for specific build types
  • Fixed bug introduced in 4.4.1 that prevented upload of Proguard files


July 14, 2020

  • Fixed bug where cached sessions were not sent if NDK crash support was not enabled
  • Fixed bug where only the first 3 ANR intervals were captured


July 2, 2020

  • Added NDK crash reporting


June 18, 2020

  • Fixed a concurrency bug that could trigger when making network calls shortly after startup
  • Added nullability annotations to improve Kotlin integration experience


May 26, 2020

  • Fixed an issue with capturing network request and response sizes for gzipped native requests when the content type header was lowercase.


May 15, 2020

  • Added option to disable capture of app disk usage. This could be excessively slow on older devices with large numbers of files in the app directory.
  • Disabled capturing network request and response sizes for native requests by default.


April 27, 2020

  • Migrated to AndroidX
  • Fixed issue with Proguard/R8 uploads with AGP 3.6.x
  • Added flavor-based SDK configuration option
  • Added check for transitive network library (okhttp and Volley) dependencies
  • Added configuration options to force inclusion of transitive network dependencies


April 15, 2020

  • New config property sessions.disabled_url_patterns filters network requests entirely from session
  • Added more logging around which embrace-config.json file is used and which paths were scanned


April 8, 2020

  • Added option to send session end message asynchronously
  • Only check the app's disk usage once during a session. This operation could take too long on certain devices for apps with large numbers of files to be done repeatedly
  • Fixed bug with reporting of network switches when the device had no connectivity


March 31, 2020

  • Fixed bug where temporary session properties would only be cleared on cold start. Now they are cleared at the end of each session
  • Show all custom configuration settings in the console log at startup
  • Fixed a bug that could prevent network, view, and tap captures from working when multiple variants were built with a single Gradle command
  • Fixed a bug where incorrect warning logs about deprecated settings could be shown


March 12, 2020

  • Fixed issue that prevented removal of session properties


March 11, 2020

  • Added ability to add properties to sessions
  • Capture additional thread info at the time of a crash
  • Fixed bug that caused clearAllUserPersonas to not clear all user personas
  • Fixed network capture issue that was causing network calls with IP addresses to be dropped


March 3, 2020

  • Added support to capture fragments manually
  • Removed incorrect build-time logs that referenced the usage of deprecated features
  • Added validations to handle usage of API-level-restricted functions


January 16, 2020

  • Fixed bug in Embrace Gradle plugin that could lead to SDK config not being properly read when building an app bundle


January 14, 2020

  • Added a more flexible configuration approach that simplifies how custom configurations can be set up for different build variants
  • Added user info association that is set during a session even if it was cleared before the session ended
  • Added optional argument to endSession method to clear user info when ending the session
  • Added ability to ignore non-serializable log and event properties
  • Fixed crash caused by trying to capture null headers from network requests.
  • Fixed a network path override issue when network requests ended in connection errors.
  • Improved sourcemap upload task for React Native


November 7, 2019

  • Added a config setting to allow disabling of gunzipping of requests made with the native Android network request framework. By default the SDK handles the gunzipping to allow response size to be computed, but this can interfere with certain services.


October 22, 2019

  • Improves capture of React Native crashes.


October 21, 2019

  • Added option to disable capture of tap coordinates.
  • Added support for React Native crashes.
  • Added support for improved React Native log stack traces.
  • Added support for upload of React Native source maps to the upload script.
  • Fixed bug that could cause failure in reading the swazzling cache.


September 8, 2019

  • Fixed issue that prevented uploading of mapping info when using r8


September 13, 2019

  • Added option to allow startup screenshots to be disabled


September 10, 2019

  • Removed network requests made when setting user info
  • Fixed bug that could cause an exception when using other SDKs that monitor network traffic
  • Fixed bug that prevented connection error types from being correctly reported


August 12, 2019

  • Handles attempt to set trace ID before SDK initialization
  • Re-added removed logNetworkCall and logNetworkClientError methods


August 9, 2019

  • We added support for passing a Throwable to logError. If you pass a Throwable, the stack trace from the Throwable will be used instead of the stack trace from where the logError method was called.
  • Log messages are now limited to 128 characters. Contact us if you need longer log messages.
  • We moved more of the work done for logInfo/Warning/Error calls to a worker thread to prevent the logging calls from blocking the threads they are called from.
  • We set the timestamp for log messages immediately after the log method is called rather than in a worker thread. This should slightly improve the accuracy of the log timestamps.
  • We reduced aggressiveness of config network requests. If you were offline and the SDK had never received a config, it would keep trying to get one more often than it should have.
  • We added a method to get the Embrace-assigned device ID from the SDK.
  • We now allow trace IDs to be captured from network requests and sent to Embrace.
  • Gracefully handle multiple attempts to start the SDK
  • Switched from using api to implementation for dependencies
  • Added missing public event-related methods to match the iOS SDK


July 22, 2019

  • Fixed typos in methods to set bytes in and out for manually-captured requests


July 22, 2019

  • Added support for manual capture of network requests. The SDK is capable of automatically capturing the majority of REST network calls made by applications, but this new method allows recording of network requests that are not automatically captured, such as gRPC requests.