skylot/jadx · error · JadxRuntimeException

Unknown type char: '{}' (0x{})

Error message

Unknown type char: '{}' (0x{})

What it means

ArgType.parse(char): the single character is not one of the recognized primitive descriptors (Z B C S I J F D V). This is the final fallback for an unknown primitive type code.

Source

Thrown at jadx-core/src/main/java/jadx/core/dex/instructions/args/ArgType.java:784

			case 'B':
				return BYTE;
			case 'C':
				return CHAR;
			case 'S':
				return SHORT;
			case 'I':
				return INT;
			case 'J':
				return LONG;
			case 'F':
				return FLOAT;
			case 'D':
				return DOUBLE;
			case 'V':
				return VOID;

			default:
				throw new JadxRuntimeException("Unknown type char: '" + f + "' (0x" + Integer.toHexString(f) + ')');
		}
	}

	public int getRegCount() {
		if (isPrimitive()) {
			PrimitiveType type = getPrimitiveType();
			if (type == PrimitiveType.LONG || type == PrimitiveType.DOUBLE) {
				return 2;
			} else {
				return 1;
			}
		}
		if (!isTypeKnown()) {
			return 0;
		}
		return 1;
	}

View on GitHub (pinned to e738a26571)

Solutions

  1. Upgrade JADX.
  2. Inspect the raw byte value shown in the message (0xNN) to identify the corrupt character.
  3. Validate DEX type tables with dexdump.
  4. Re-extract the APK and report upstream.
Defensive patterns

Strategy: validation

Validate before calling

// Pre-check that every single-char type descriptor is a known primitive.
static final String VALID_PRIMS = "ZBCSIJFDV";
static boolean validPrimChar(char c) { return VALID_PRIMS.indexOf(c) >= 0; }

Try / catch

try {
    jadx.load();
} catch (JadxRuntimeException e) {
    if (e.getMessage().contains("Unknown type char")) {
        log.warn("Unknown primitive type descriptor char; corrupt DEX", e);
    } else throw e;
}

Prevention

When it happens

Trigger: A type descriptor character outside the JVM primitive set, e.g. 'A', 'X', 'N', or a control character from corrupt data.

Common situations: Corrupt DEX type strings, a packer that mutates descriptor bytes, or an input from an unsupported/prototype DEX format.

Related errors


AI-assisted analysis of skylot/jadx@e738a26571 (2026-08-14). Data as JSON: /api/errors/2ed298b28d19148a. Report an issue: GitHub.