Android SDK
Version history and release notes for the Luciq Android SDK. Track new features, enhancements, fixes, and breaking changes in each published release.
v19.12.0
New Features
Adds render-aware screenshot capture, keeping private and auto-masked views accurately covered even when a layout or draw pass happens during capture. Applies to bug report screenshots, Repro Steps, and Session Replay. Disabled by default — enable and tune it at app startup.
Luciq.setRenderAwareScreenshotCapturingEnabled(true)
Luciq.setScreenshotCapturingMaxRetries(3)
Luciq.setScreenshotCapturingRetryDelay(200)Enhancements
Keeps the SDK running on emulators instead of pausing it on low virtual storage or memory, and no longer classifies emulators as low-performance devices.
[Internal] Enhances SDK internal analytics
Bug Fixes
Fixes mandatory version update announcements being dismissed after tapping "Update Now" even when the app was not updated, letting users continue into the app.
Fixes Repro Steps recording nested fragment screens out of order, where a child screen could be logged before the parent screens that contain it.
v19.11.0
New Features
Extends theme support to In-App Surveys and Announcements, applying the same colors, fonts, and light/dark mode already used in Bug Reporting.
Enhancements
Adds support for Android 17 (API 37).
Adds support for Jetpack Compose BOM 2026.06.01 (Compose 1.11.4).
Improves text contrast in the bug reporting screen to meet WCAG AA.
Bug Fixes
Fixes text fields not being identified as input fields in User Steps and Repro Steps on Compose 1.8.0 and above.
Fixes the Surveys dialog showing at the wrong size after rotating the device.
Fixes screen reader announcements for consent checkboxes in the bug reporting screen.
Fixes an issue where surveys could fail to be fetched in some configurations.
v19.10.1
Enhancements
Adds a read-only
isCanceledproperty toNetworkLogSnapshot, letting apps identify and optionally drop cancelled network requests via the network log listener.
Luciq.setNetworkLogListener { networkLog ->
if (networkLog.isCanceled) null else networkLog
}Reduces disk writes when the SDK applies configuration updates.
Reduces the overhead of APM screen rendering monitoring and releases its resources when the feature is disabled.
Reduces Session Replay CPU usage.
Bug Fixes
Fixes the screenshot, floating and screen-recording buttons being hidden behind bottom sheets and dialogs.
v19.10.0
Features
Adds screen rendering metrics support for Jetpack Compose screens in APM.
Enhancements
Resolves a security warning by replacing dynamically built SQL statements with parameterized queries in the SDK's internal storage.
Improves user event identifier validation: identifiers are now trimmed, sanitized against control characters, and capped at 200 characters.
v19.9.0
Enhancements
Flags GraphQL network logs as partial success when a request returns an HTTP 2xx response that still contains a non-empty
errorsarray — catching GraphQL calls that look successful but partially failed. Flagged logs are marked with a Partial success badge in Bug Reports, Session Replay, and Crashes.Improves SDK network efficiency.
v19.8.0
Features
Added the ability to start a new session on logout so each user identity gets an isolated session, ensuring activity is attributed to the correct user. This is disabled by default — reach out to customer support team to enable it.
Bug Fixes
Fixes a rare ANR that could occur at crash time due to a lock-ordering deadlock while a session was being ended.
Fixes SDK diagnostic events — including network and Session Replay logs — being silently dropped on obfuscated (release) builds.
Fixes an empty (0-byte)
luciq_config.jsonbundled in the SDK that could break post-build security / app-shielding tools.
v19.7.0
Features
Adds the
setViewsContentCaptureEnabledAPI to redact User Steps and Repro Steps content.Adds support for
paramsin user events.Adds a Gradle configuration to automatically capture Jetpack Compose screens as
APMscreens.
luciq {
showAutoComposableAsScreen = true
}Enhancements
Adds support for per-variant Luciq app tokens in the
luciq-crashGradle plugin.Optimizes console log lock contention that could block the main thread and cause ANRs.
Bug Fixes
Fixes an ANR caused by thread-safety race in
OkHttpnetwork logging under concurrent traffic.Fixes data capture in the
inapp_webviewplugin by instrumentingWebViewsubclasses.Fixes OOM crashes in long background sessions by applying backoff on sync failure.
v19.6.0
New Features
Track user actions in React Native
WebViewsSupport Screen Loading For React Native
Enhancements
Improve Accessibility in Bug Reporting screen
Bug Fixes
Fix host app crashes caused by
RxJava UndeliverableExceptionFix deadlock between the
APMServiceLocator.classmonitor and Kotlinlazyinternal locks which causes ANR in Flutter apps.Fix memory leak in screen rendering caused by an unbounded per-instance map and prevent
Window/Activityretention
v19.5.1
Bug Fixes
Fixes an ANR that could occur when non-HTTP URL connections, such as
classpathresource loading via Kotlin reflection, were being intercepted by the network monitor.Fixes an ANR that could occur when using the
OkHttpnetwork interceptor due to concurrent access from multiple threads during a network call.
v19.5.0
New Features
Adds support for branching in Custom Surveys.
Adds NDK symbol upload Gradle task for automated symbol file (
.so) upload during the build process.
luciq {
crashReporting {
appToken = "APP_TOKEN"
ndkSymbol {
autoUploadEnabled = true
apiKey = "API_KEY"
}
}
}Enhancements
Adds support for excluding custom URL patterns from
OkHttpresponse body capture.
luciq {
networkInterception {
enabled = true
excludeUrlPatterns = listOf(".*chat/stream.*", ".*/events.*", ".*/notifications/live.*")
okHttp {
it.enabled = true
}
}
}Bug Fixes
Fixes
OkHttpinterceptor breaking streaming/chunked HTTP responses (SSE/event-stream) by skipping response body buffering for streaming content types.
v19.4.0
Features & Enhancements
Adds satellite network type detection for Session Profiler and
APMnetwork logs, providing better visibility into network connectivity.Adds Multi-window support in Surveys and Announcements.
Adds support for
Compose BOMversion2026.03.00(Compose 1.10.5).Improved internal SDK logging and error handling to reduce noise.
v19.3.0
Features
Custom Spans in
APM: Adds support forCustomSpantracking with explicit start and end times.
// Start custom span
val span: CustomSpan? = APM.startCustomSpan(name: string)
// ... do work ...
span?.end() //end custom span
// Save completed custom span with known start and end date
APM.addCompletedCustomSpan(name: String, startDate: Date, endDate: Date)Enhancements
Adds default masking for
WebViewcontent to enhance privacy protection.Reduces unnecessary error log output when reporting non-fatal exceptions.
Changes the ADB debug property key from
debug.instabug.apm.apptodebug.luciq.app. The old property is still supported as a fallback.
Bug Fixes
Fixes an ANR caused by synchronous
SharedPreferencesaccess in theAPMContentProviderduring app startup.Fixes an ANR caused by Firebase initialization deadlock when Firebase Performance SDK is enabled.
Fixes a crash that occurs under certain conditions when invoking the SDK via the Floating Action Button.
Fixes malformed JSON in crash reports when message content exceeds size limits.
Fixes an issue where
ScreenRenderingtraces were incorrectly attributed in specific scenarios.Fixes a crash in
RepliesUI that occurs under certain conditions when the screen is closed unexpectedly.
v19.2.2
Enhancements
Adds
LogLevel.WARNINGlog level for filtering SDK warning logs. This is now the default log level.Resolves a security warning by replacing raw SQL construction with parameterized queries in internal diagnostics storage.
Bug Fixes
Fixes a build-time crash in the Gradle plugin when logging ASM bytecode transformations for certain
ClassVisitortypes.Fixes an issue where user steps data scraping captured incorrect view IDs for legacy views inside private scope containers.
Fixes a crash that could occur when displaying chat messages with a null attachment type.
Fixes potential null pointer exceptions in bug reporting UI when fragment views are accessed after destruction.
v19.2.1
Bug Fixes
Fixes an issue where the bug report form could sometimes open twice after a single shake gesture.
Fixes an issue where surveys and announcements being obscured by the system navigation bar on certain devices.
Fixes an issue where canceled network requests being incorrectly logged as errors when using the
OkHttpinterceptor.Fixes a crash that could occur when accessing device storage on devices where external storage is temporarily unavailable.
Fixes
NPEerror log that could occur during URL connection interception for certain URL types (JAR,fileprotocols).
v19.2.0
Features
WebView Monitoring: Added comprehensive
WebViewmonitoring to capture performance metrics, user interactions, and network requests fromWebViewcomponents.New API:
Luciq.setWebViewMonitoringEnabled(boolean)New API:
Luciq.setWebViewUserInteractionsTrackingEnabled(boolean)New API:
Luciq.setWebViewNetworkTrackingEnabled(boolean)New build configuration:
luciq { webViewsTrackingEnabled = true }
Notification Icon Color API: Introduces
Replies.setNotificationIconColor()to customize the background color of notification icons.
Replies.setNotificationIconColor(Color.RED)Enhancements
Adds defensive validation to prevent sending corrupt app version data under certain conditions.
Bug Fixes
Fixes a race condition that could cause duplicate chat sync network requests.
Fixes an issue where proactive bug reporting does not trigger after user termination.
Fixes a bug causing logs and attachments to go missing with NDK crash reports.
Fixes
ProtectionLayoutappearing repeatedly on each interaction withComposables when usingandroidx.core:core-ktxv1.16.0+.Fixes button text color in chats to ensure proper visibility.
Fixes alert dialogs appearing with a white background in dark mode when using a custom theme.
v19.1.0
Features
Session Replay Screenshot Quality Control: New API to adjust the visual quality of captured screenshots.
SessionReplay.setScreenshotQuality(ScreenshotQuality.NORMAL)Video-like Session Replay (Experimental): Capture screenshots based on user interactions or at fixed intervals for a video-like playback experience.
@OptIn(ExperimentalVideoLikeReplay::class)
fun configureVideoLikeSessionReplay() {
SessionReplay.setCapturingMode(CapturingMode.FREQUENCY)
SessionReplay.setScreenshotCaptureInterval(500)
}Enhancements
Feature Flags' keys and values limits are now server-side configurable.
Introduces actionable user consents for Bug Reporting with a new
ActionType.NO_AUTOMATIC_BUG_GROUPINGaction type.
BugReporting.addUserConsent(
"grouping-consent",
"Allow grouping similar bugs",
false, true,
ActionType.NO_AUTOMATIC_BUG_GROUPING
)Bug Fixes
Fixes a bug where keyboard open/close detection caused cyclic
onGlobalLayoutcallbacks when adjusting the bottom sheet margin in Bug Reporting.
v19.0.0
Breaking Changes
Introducing a new, single network interceptor with automatic instrumentation for
OkHttpand nativeUrlConnection.
// Project-level build.gradle
plugins {
id("ai.luciq.library") version "$luciqVersion" apply false
}
// app-level build.gradle
plugins {
id("luciq")
}
luciq {
networkInterception {
enabled = true
}
}Revamped
APM'sUI Hangswith slow and frozen frames metric.
// Deprecated:
APM.setUIHangEnabled()
// Replace with:
APM.setScreenRenderingEnabled()Bug Fixes
Fixed a race condition causing
android.database.sqlite.SQLiteConstraintExceptionerror to be logged under certain conditions.
v18.2.1
Enhancements
Cleaned up and refined logging levels for non-critical events.
Bug Fixes
Fixed incorrect UI translation when the device locale is set to Portuguese (Brazil)
pt_BR.Fixed Out of Memory (OOM) issues during chat messages synchronization by optimizing memory allocation and resource management.
v18.2.0
Enhancements
Added support for app variant targeting in Surveys and Announcements.
new Instabug.Builder(this, "APP_TOKEN")
.setAppVariant("App1")
.build();Increased character limit for disclaimer and consent fields in bug reporting to 200 chars.
Bug Fixes
Fixed an issue that caused missing screenshots in Repro Steps for Flutter apps.
Fixed an issue where the first UI trace wasn't inserted into the database, leading to
SqliteConstraintExceptionlogs.Fixed an issue where a white box covered the bug description field on small-screen devices.
Fixed a Disk Read
StrictModeviolation that occurred when attaching images from the gallery in Bug Reporting.Fixed an issue where
BugReporting.setDisclaimerText()did not apply if called immediately after SDK initialization.
v18.1.0
Enhancements
Adds test tags support for
Compose v1.7.+Adds support for
Apollo v4
Bug Fixes
Fixes missing request and response headers in
NetworkLogSnapshotwhen usingAPM.registerNetworkLogsListener(listener).Fixes header changes done using
APM.registerNetworkLogsListener(listener)not being applied to the captured network data.Fixes attributes added using
OnNetworkTraceListener.addAttributesOnFinish()are not added in some cases.
v18.0.1
Enhancements
Optimizes SDK's
UncaughtExceptionHandleroperations to prevent ANRs from occurring while the application is exiting (crashing).Mutes a few diagnostics logs to reduce noise in the
logcat.
Bug Fixes
Fixes an issue where features cache was being stored before features states were properly consumed, which could lead to inconsistent SDK behavior.
Fixes an issue with email format validation causing malformed emails to be sent with crash reports.
Fixes a crash (
ActivityNotFoundException) encountered while attaching extra images to bug reports via Android's new photo picker on some devices.Fixes a race condition that causes chats synchronization request to get fired while chats being disabled with
RepliesAPIs.Fixes an issue that causes interactions tracking for Jetpack Compose screens to yield inaccurate results when an overlay
Composableis present.
Last updated