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:
- Enable
Generate methods CFG graphs(CLI:--cfg) for the standard CFG. - Enable
Generate RAW CFG graphs(CLI:--raw-cfg) for the more verbose fallback graph.
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:
| Goal | GUI option | CLI flag |
|---|---|---|
| Disable deobfuscation entirely | Uncheck Enable deobfuscation | (disabled by default in CLI) |
| Stop identifier renaming | Uncheck all Rename identifiers flags | --rename-flags none |
| Keep anonymous classes | Uncheck Inline anonymous classes | --no-inline-anonymous |
| Keep inlined methods | Uncheck Inline methods | --no-inline-methods |
| Keep inner classes in place | Uncheck 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
- Before decompilation: open
File → Preferences → Excluded packagesand add packages to skip. - Or right-click a package in the tree to exclude it.
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):
- Disable the memory bar:
View → Show memory usage bar(uncheck). - Update to the latest JRE.
All platforms — rendering issues in jadx-gui
Fix: Use the latest Java version.
- Windows: use the release bundle
jadx-gui-***-with-jre-win.zip(JRE bundled). - Or download the latest JRE from https://www.oracle.com/java/technologies/downloads/#jdk17-windows