pxb1988/dex2jar · error · RuntimeException
can't parse type list
Error message
can't parse type list: ${desc} What it means
Thrown by the default branch of the descriptor parser in listDesc while walking a JNI type descriptor character by character: the current character is not one of 'Z','B','C','S','I','J','F','D','V','[','L', i.e. the descriptor string (typically a method argument list passed via toTypeList) is malformed at that offset. The offending text is included as ${desc}.
Solutions
- Inspect the full descriptor string reported in the message and locate the illegal character at the failure offset
- Fix the producer of the descriptor — usually a typo in a method signature string such as a missing ';' after an L...; class type or an unbalanced '('
- If the input comes from an external file, correct the signature there and re-run the conversion
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at d2j-smali/src/main/java/com/googlecode/d2j/smali/Utils.java:133 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of pxb1988/dex2jar@b5bda4fb49 (2026-09-08).
Data as JSON: /api/errors/8f5314194466f4a5.
Report an issue: GitHub.
Appendix: source
Thrown at d2j-smali/src/main/java/com/googlecode/d2j/smali/Utils.java:133
}
}
count++;
list.add(new String(chars, i, count));
i += count;
break;
}
case 'L': {
int count = 1;
while (chars[i + count] != ';') {
++count;
}
count++;
list.add(new String(chars, i, count));
i += count;
break;
}
default:
throw new RuntimeException("can't parse type list: " + desc);
}
}
return list;
}
public static String[] toTypeList(String s) {
return listDesc(s).toArray(new String[0]);
}
static public Byte parseByte(String str) {
return (byte) parseInt(str.substring(0, str.length() - 1));
}
static public Short parseShort(String str) {
return (short) parseInt(str.substring(0, str.length() - 1));
}
static public Long parseLong(String str) {View on GitHub (pinned to b5bda4fb49)