Troubleshooting Q&A

Troubleshooting Q&A

Decompilation Issues

“Code decompiled incorrectly, please refer to instructions dump”

jadx failed to restore control-flow structure (e.g. could not map instructions to if/for blocks).

Fix: Enable Show inconsistent code in Preferences (CLI flag: --show-bad-code) to view the partial output. Always cross-check against the Smali view or CFG dump.


“Method dump skipped”

The fallback dump is silently skipped for large methods.

Fix: Set Code comments level to debug in Preferences (CLI flag: --comments-level debug).


Decompiled code is incorrect

Fix: Generate control-flow graph (CFG) dumps for the method:

Both options emit .dot files for every decompiled method into the current working directory, named after the input file. View .dot files with any GraphViz GUI from https://graphviz.org/resources/#graphical-interfaces.


Some classes are missing

jadx may rename or inline classes during deobfuscation. To disable this:

GoalGUI optionCLI flag
Disable deobfuscation entirelyUncheck Enable deobfuscation(disabled by default in CLI)
Stop identifier renamingUncheck all Rename identifiers flags--rename-flags none
Keep anonymous classesUncheck Inline anonymous classes--no-inline-anonymous
Keep inlined methodsUncheck Inline methods--no-inline-methods
Keep inner classes in placeUncheck Move inner classes into parent--no-move-inner-classes

Loading Issues

Bad dex file checksum

ERROR: Failed to read zip entry: classes.dex
jadx.plugins.input.dex.DexException: Bad dex file checksum: 0xcf6cae6c, expected: 0x1b5d3bf0, file: classes.dex

Some packers intentionally tamper with the dex checksum.

Fix: Disable verification in Preferences → Plugins → Dex Input → verify dex file checksum.


Out of Memory Problems

Option 1 — Reduce thread count

Use fewer processing threads: CLI flag -j <count>.

Option 2 — Exclude unneeded packages

Common safe exclusions: android.support, android.arch.

Option 3 — Switch to disk code cache (jadx-gui ≥ 1.4.0)

Set Code cache mode to DISK in Preferences. Uses minimum RAM at the cost of disk I/O.

Option 4 — Increase JVM heap

Linux / Windows (script install): Edit bin/jadx-gui or bin/jadx-gui.bat and change the DEFAULT_JVM_OPTS line:

DEFAULT_JVM_OPTS='"-Xms128M" "-Xmx8g" "-Dawt.useSystemAAFontSettings=lcd" "-Dswing.aatext=true" "-XX:+UseG1GC"'

Windows (.exe install): Create a text file named jadx-gui.l4j.ini in the same directory as jadx-gui.exe with the content:

-Xmx8g

If the .exe has been renamed (e.g. jadx-gui-1.1.0-b1279-2207cd7b.exe), the ini file must match: jadx-gui-1.1.0-b1279-2207cd7b.l4j.ini.


jadx-gui Platform Issues

Linux HiDPI — incorrect scaling

Fix: Start jadx with the environment variable GDK_SCALE=2.

1GDK_SCALE=2 jadx-gui

macOS — high background CPU usage

Caused by the JVM memory-usage bar polling loop (known issues #1000, #1413).

Fixes (try in order):

  1. Disable the memory bar: View → Show memory usage bar (uncheck).
  2. Update to the latest JRE.

All platforms — rendering issues in jadx-gui

Fix: Use the latest Java version.