android-debugging

Diagnose Android and KMP issues using Logcat, ADB, ANR traces, and R8 mapping files.

1|Updated Jun 1, 2026
One-click install
npx skills add https://github.com/chmonya-inc/dnd-manager --skill android-debugging-chmonya-inc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: android-debugging
Source: https://github.com/chmonya-inc/dnd-manager/tree/main/.agents/skills/android-debugging
Command: npx skills add https://github.com/chmonya-inc/dnd-manager --skill android-debugging-chmonya-inc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Debugging Android and Kotlin Multiplatform apps requires platform-specific evidence gathering that generic debugging workflows do not cover, from reading obfuscated release stack traces to tracing ANRs and memory leaks. ## Core Features & Use Cases - Crash and ANR Analysis: Stream filtered Logcat output, pull ANR traces, and read full Caused by: chains to find root causes. - Release Build Debugging: Decode obfuscated R8/ProGuard stack traces with mapping files and diagnose Gradle build failures like manifest merger conflicts and duplicate classes. - Memory and UI Inspection: Detect leaks with LeakCanary, dump heaps for profiling, and inspect Compose recomposition or layout state via JSON UI trees. - Use Case: A release build crashes only in production with an obfuscated stack trace. Use this Skill to retrace the crash against the archived mapping file, identify the missing keep rule, and verify the fix in usage.txt. ## Quick Start Use the android-debugging skill to investigate why my app crashes on launch and walk me through the logcat evidence.

Frequently Asked Questions about android-debugging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug an Android app crash using logcat?▼

Filter logcat by your app's process ID with `adb logcat --pid=$(adb shell pidof -s com.example.app)` or save the full log with `adb logcat -d`. Read the entire stack trace, since the root cause is usually at the bottom of the `Caused by:` chain.

How to decode obfuscated R8 or ProGuard stack traces?▼

Use the mapping file generated at build time in `app/build/outputs/mapping/<variant>/mapping.txt`. Run `./gradlew :app:retrace --stacktrace-file crash.txt` or the retrace CLI directly to restore original class and method names.

What causes ANR errors in Android apps?▼

ANRs occur when the main thread is blocked, typically by database or network calls on the main thread, `runBlocking` on main, or deadlocks between coroutine scopes. Pull `/data/anr/traces.txt` and look for the main thread in MONITOR state to find the lock holder.

Does this debugging approach work for Kotlin Multiplatform projects?▼

Yes, the skill explicitly covers KMP issues alongside Android-specific techniques. It supplements a systematic debugging workflow with Android tools like Logcat, ADB, and Gradle diagnostics that apply to shared KMP code running on Android targets.

Why does my Compose UI recompose excessively?▼

Common causes include State objects created inside composition without `remember`, missing `equals()` on state data classes, and unstable captured references like mutable collections. Use Layout Inspector's recomposition counts or `android layout --diff` to identify hot paths.

How do I find memory leaks in an Android app?▼

Add LeakCanary as a `debugImplementation` dependency, which surfaces leak traces automatically in notifications. Read the trace top-to-bottom: the first bold line is the leaking object, and the path shows what holds the reference.