New in this release
- Added a new MobileBreadcrumb event type that allows you to annotate the execution of your app, to help troubleshoot crashes and provide greater detail in Insights. See the recordBreadcrumb() API docs for more information.
- Added an additional recordCustomEvent method that takes the event name as an optional parameter. This avoids the need to add a name attribute in the passed attribute set. See the recordCustomEvent() API docs for more information.
Fixed in this release
- Validate custom event type names with the same rules as the backend service, reporting invalid event types to the user immediately. Previous agent versions would allow custom event type names that would be rejected by Insights during ingest. The name may be comprised of alphanumeric, space,
.
,:
or_
characters.
Fixed in this release
- Fix instrumentation failure when using Dexguard, Retrolambda and build product flavors.
Fixed in this release
- Fix a null pointer exception crash that occurred during completion of activity traces.
- Optimize updates to the analytics attribute store.
- OkHttp3 responses are no longer pre-buffered. Streamed responses without a content length header will report -1 for content length.
New in this release
Updates to recording custom events
With this agent release, Mobile custom events are now recorded as their own event type in New Relic Insights. Until this release, custom events for New Relic Mobile were bundled under the "Mobile" event type (category='Custom'). This release includes a new method to be used for adding custom events: recordCustomEvent. The previously used method for this, recordEvent, is now deprecated. This update is to satisfy customer requests for:
- Improved Insights query performance
- Defining your own custom event names
- Finding custom events in Insights more easily
- Flexibility to define data retention per custom event type (1 day default; more with Insights Pro)
For this and the next several releases, we will continue to support the previous method for custom events (recordEvent) to avoid impact on your queries and existing dashboards.
Fixed in this release
- Ignore BaseFragmentActivityGingerbread base class when auto-instrumenting activities.
New in this release
Adds recording of network request error events
The agent now generates MobileRequestError events describing failures in network requests. This new event tracks networking and HTTP errors, and includes attributes for common request properties. More details can be found at Mobile Request Error Events.
Adds additional session attributes
- lastInteraction allows you to see in Insights, what the most common exit screen was for customers across all sessions or a filtered selection of sessions.
- appBuild allow developers to view the adoption of a new build, particularly if rolled out under an existing app version number. Originally, this was only available on crash events.
- architecture and runTime allow you to see the hardware type and Java runtime version the of the device on which the app is running. Both values are taken form the device's system properties, and are useful for debugging device-specific issues.
Fixed in this release
Fix the minimum utilization instrumentation filter
Slow interaction trace capture relied on an incorrectly interpreted minimum utilization value. In some cases you may see more slow interaction traces than previous agent versions. Please reach out to support if you are not seeing slow interaction traces.
Fix crash when using OkHttp 3.2.0 web sockets
Although the Android agent does not officially support OkHttp versions prior to 3.4, this fix avoids crashes that may occur when including 3rd-party libraries that may depend on those versions of OkHttp.
Warn when agent and class rewriter versions do not match
Instead of halting a build of the application, the agent will warn of this benign scenario. Agent JAR version mismatch sometimes occurs when upgrading to a new agent version.
Fix ConcurrentModificationException crash
This change addresses a rarely seen crash that occurs during agent start-up.
Move remaining sampler shutdown to background thread
This change addresses a lag seen during interaction trace completion.
New in this release
- Fixed instrumentation failures that occurred when building apps that used both Dexguard and the Android Retrolambda plugin.
- Updated agent logging to remove noise and conform to Gradle logging conventions.
Adding --info or --debug to the Gradle build will result in more detailed logging messages. - Replaced Gradle agent plugin POM file missing from Jfrog Bintray artifact repository.
- Agent and agent plugin are now built using JDK 1.8.
New In This Release
- Starting with this version of the SDK, you can set a custom user identifier value that can be used to associate user sessions with analytics events and attributes. Check out the NewRelic.setUserId method for more information.
Fixes
- Fixed content length tracking and reporting failure for Retrofit ResponseBody contents.
Update for OkHttp3 instrumentation
- This release updates OkHttp3 instrumentation. OkHttp3 instrumentation is the automatic instrumentation for apps using the OkHttp version 3 HTTP client library for synchronous and asynchronous network requests. OkUrlFactory is also now supported when used with OkHttp3 client.
Fixes
- Fixed the class cast exception crash when using OkHttp3 web sockets.