<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf" -->

---
title: Debugging native crashes on Android just got easier with...
description: Crashlytics now captures Android native crash tombstones alongside minidumps, giving developers symbolicated system-library frames (e.g., libc.so, libart.so)...
canonical: https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Debugging native crashes on Android just got easier with Crashlytics | daily.dev
og:description: Crashlytics now captures Android native crash tombstones alongside minidumps, giving developers symbolicated system-library frames (e.g., libc.so, libart.so)...
og:url: https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf
og:image: https://api.daily.dev/og/posts/Im5bODuvf.png
og:image:alt: Debugging native crashes on Android just got easier with Crashlytics
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Debugging native crashes on Android just got easier with Crashlytics

**[Firebase](https://daily.dev/sources/firebase-blog)** · 4 min read · 0 upvotes · 0 comments

## Summary

Crashlytics now captures Android native crash tombstones alongside minidumps, giving developers symbolicated system-library frames (e.g., libc.so, libart.so) in addition to app frames. Starting with Crashlytics NDK SDK version 18.3.6, tombstones are collected on devices running Android 12 (API level 31) and higher. Crashlytics runs tombstones through its symbolication pipeline to fill in app symbols, file names, and line numbers, and displays both minidump and tombstone stack traces side-by-side in the dashboard and BigQuery exports, removing the need to manually pair the console with raw tombstones via ApplicationExitInfo#getTraceInputStream().

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://firebase.blog/posts/2025/11/crashlytics-android-ndk-tombstones>

## Questions this post answers

### What version of the Crashlytics NDK SDK added tombstone collection for Android native crashes?

Tombstone collection was added starting in Crashlytics NDK SDK version 18.3.6, and it works on devices running Android 12 (API level 31) and higher. Tombstones are on-device crash reports that include on-device symbolication for system libraries, unlike minidumps which are symbolicated on Firebase's backend. Crashlytics now displays both minidump and tombstone stack traces side-by-side in the dashboard.

_Track SDK changes like this Crashlytics update on daily.dev before they cause debugging surprises._

### Why do Android native crash stack traces show raw pc addresses instead of symbol names for system libraries like libc.so?

Crashlytics collects native crashes as minidumps processed on Firebase's backend using only the app's uploaded symbol files, so system libraries like libc.so and libart.so remain unsymbolicated since a comprehensive repository of every system library version across all Android devices is too large to maintain. Tombstones solve this because Android ships system libraries with embedded debug symbols enabling on-device symbolication.

_Developers debugging tricky native crashes can follow tooling updates like this on daily.dev._

### What is the difference between a minidump and a tombstone in Android native crash debugging?

A minidump is a lightweight app-state snapshot captured by the Crashpad client and symbolicated on Firebase's backend using uploaded app symbol files, giving high-fidelity app frames but raw system frames. A tombstone is generated directly on-device and includes embedded system library debug symbols, so it symbolicates system frames well but lacks app symbols in stripped release builds. Crashlytics now processes tombstones through its symbolication pipeline to fill in app frames too.

_Comparing crash diagnostic approaches gets easier when developers follow tooling updates on daily.dev._

## Similar posts on daily.dev

- [Deep troubleshooting and crash intelligence in the new Dynatrace RUM experience](https://daily.dev/posts/deep-troubleshooting-and-crash-intelligence-in-the-new-dynatrace-rum-experience-0js0khmph) · Dynatrace · 0 upvotes · 0 comments
- [Prioritizing Memory Efficiency: Essential Steps for Android 17](https://daily.dev/posts/prioritizing-memory-efficiency-essential-steps-for-android-17-zj0b3ibcc) · Android Developers Blog · 1 upvotes · 0 comments
- [How I Found a Deadlock Inside ART That ART Itself Couldn’t Dump](https://daily.dev/posts/how-i-found-a-deadlock-inside-art-that-art-itself-couldn-t-dump-6nkawyfh2) · ProAndroidDev · 1 upvotes · 0 comments

---

Tags: [#android](https://daily.dev/tags/android), [#firebase](https://daily.dev/tags/firebase)

[View this post on daily.dev](https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Debugging native crashes on Android just got easier with Crashlytics","url":"https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf"},"datePublished":"2026-08-23T12:20:07.194Z","dateModified":"2026-08-24T06:59:14.901Z","description":"Crashlytics now captures Android native crash tombstones alongside minidumps, giving developers symbolicated system-library frames (e.g., libc.so, libart.so)...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/42dfe10d4c31cf8362c4f4189845f201?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/42dfe10d4c31cf8362c4f4189845f201?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Firebase","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Firebase","logo":"https://media.daily.dev/image/upload/s--i395oqZH--/f_auto,q_auto/v1787487448/logos/firebase-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/firebase-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"android,firebase","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Firebase","item":"https://daily.dev/sources/firebase-blog"},{"@type":"ListItem","position":3,"name":"Debugging native crashes on Android just got easier with Crashlytics"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/debugging-native-crashes-on-android-just-got-easier-with-crashlytics-im5boduvf#faq","mainEntity":[{"@type":"Question","name":"What version of the Crashlytics NDK SDK added tombstone collection for Android native crashes?","acceptedAnswer":{"@type":"Answer","text":"Tombstone collection was added starting in Crashlytics NDK SDK version 18.3.6, and it works on devices running Android 12 (API level 31) and higher. Tombstones are on-device crash reports that include on-device symbolication for system libraries, unlike minidumps which are symbolicated on Firebase's backend. Crashlytics now displays both minidump and tombstone stack traces side-by-side in the dashboard. Track SDK changes like this Crashlytics update on daily.dev before they cause debugging surprises."}},{"@type":"Question","name":"Why do Android native crash stack traces show raw pc addresses instead of symbol names for system libraries like libc.so?","acceptedAnswer":{"@type":"Answer","text":"Crashlytics collects native crashes as minidumps processed on Firebase's backend using only the app's uploaded symbol files, so system libraries like libc.so and libart.so remain unsymbolicated since a comprehensive repository of every system library version across all Android devices is too large to maintain. Tombstones solve this because Android ships system libraries with embedded debug symbols enabling on-device symbolication. Developers debugging tricky native crashes can follow tooling updates like this on daily.dev."}},{"@type":"Question","name":"What is the difference between a minidump and a tombstone in Android native crash debugging?","acceptedAnswer":{"@type":"Answer","text":"A minidump is a lightweight app-state snapshot captured by the Crashpad client and symbolicated on Firebase's backend using uploaded app symbol files, giving high-fidelity app frames but raw system frames. A tombstone is generated directly on-device and includes embedded system library debug symbols, so it symbolicates system frames well but lacks app symbols in stripped release builds. Crashlytics now processes tombstones through its symbolication pipeline to fill in app frames too. Comparing crash diagnostic approaches gets easier when developers follow tooling updates on daily.dev."}}]}
```

