From 50ceeb2d40690094ec879d81b827e6eac7fc0174 Mon Sep 17 00:00:00 2001 From: Sergio Barrio Date: Thu, 5 Feb 2026 17:03:03 +0100 Subject: [PATCH] Enable NDK Crash Reports --- example-new-architecture/App.tsx | 1 + packages/core/android/build.gradle | 1 + .../com/datadog/reactnative/DdSdkNativeInitialization.kt | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/example-new-architecture/App.tsx b/example-new-architecture/App.tsx index a8603c9b9..bb70655ee 100644 --- a/example-new-architecture/App.tsx +++ b/example-new-architecture/App.tsx @@ -47,6 +47,7 @@ import {APPLICATION_ID, CLIENT_TOKEN, ENVIRONMENT} from './ddCredentials'; trackErrors: true, sessionSampleRate: 100, telemetrySampleRate: 100, + nativeCrashReportEnabled: true }, logsConfiguration: {}, traceConfiguration: {} diff --git a/packages/core/android/build.gradle b/packages/core/android/build.gradle index f58031967..d3f8eb3fa 100644 --- a/packages/core/android/build.gradle +++ b/packages/core/android/build.gradle @@ -210,6 +210,7 @@ dependencies { implementation "com.datadoghq:dd-sdk-android-logs:3.4.0" implementation "com.datadoghq:dd-sdk-android-trace:3.4.0" implementation "com.datadoghq:dd-sdk-android-webview:3.4.0" + implementation "com.datadoghq:dd-sdk-android-ndk:3.4.0" implementation "com.google.code.gson:gson:2.10.0" testImplementation "org.junit.platform:junit-platform-launcher:1.6.2" testImplementation "org.junit.jupiter:junit-jupiter-api:5.6.2" diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt index 1d0c737a5..e667d5b42 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt @@ -30,6 +30,7 @@ import com.datadog.android.rum.tracking.ActivityViewTrackingStrategy import com.datadog.android.telemetry.model.TelemetryConfigurationEvent import com.datadog.android.trace.Trace import com.datadog.android.trace.TraceConfiguration +import com.datadog.android.ndk.NdkCrashReports import com.google.gson.Gson import java.util.Locale import kotlin.time.Duration.Companion.seconds @@ -44,12 +45,14 @@ class DdSdkNativeInitialization internal constructor( private val ddTelemetry: DdTelemetry = DdTelemetry(), private val jsonFileReader: JSONFileReader = JSONFileReader() ) { + @Suppress("CyclomaticComplexMethod") internal fun initialize(ddSdkConfiguration: DdSdkConfiguration) { val sdkConfiguration = buildSdkConfiguration(ddSdkConfiguration) val trackingConsent = buildTrackingConsent(ddSdkConfiguration.trackingConsent) var rumConfiguration: RumConfiguration? = null var logsConfiguration: LogsConfiguration? = null var traceConfiguration: TraceConfiguration? = null + val nativeCrashReportEnabled = ddSdkConfiguration.rumConfiguration?.nativeCrashReportEnabled ?: false if (ddSdkConfiguration.rumConfiguration != null) { rumConfiguration = buildRumConfiguration(ddSdkConfiguration) @@ -88,6 +91,10 @@ class DdSdkNativeInitialization internal constructor( if (traceConfiguration != null) { Trace.enable(traceConfiguration, Datadog.getInstance()) } + + if (nativeCrashReportEnabled) { + NdkCrashReports.enable() + } } private fun configureRumAndTracesForLogs(configuration: DdSdkConfiguration) {