pxb1988/dex2jar · error · RuntimeException
can't pase string
Error message
can't pase string
What it means
A generic guard in findString: while unescaping a smali/dex string literal the escape scanner (handling \\, \', \uXXXX and up to 3 octal digits) walked past the end of the input or hit a character sequence that does not form a valid escape, so the literal cannot be parsed. The faulting input is the string literal being decoded.
Solutions
- Check the string literal in the smali/dex input for a malformed escape (e.g. a trailing lone backslash or an incomplete \u sequence)
- If the file was edited by hand, quote or fix the escape and regenerate
- If the literal comes from a third-party dex, verify the file is not truncated or corrupted — re-obtain the original APK/DEX
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at d2j-smali/src/main/java/com/googlecode/d2j/smali/Utils.java:339 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/8a437ae3346e8718.
Report an issue: GitHub.
Appendix: source
Thrown at d2j-smali/src/main/java/com/googlecode/d2j/smali/Utils.java:339
case '\'':
case '\\':
i += 2;
break;
case 'u':
i += 6;
break;
default:
int x = 0;
while (x < 3) {
char e = str.charAt(i + 1 + x);
if (e >= '0' && e <= '7') {
x++;
} else {
break;
}
}
if (x == 0) {
throw new RuntimeException("can't pase string");
}
i += 1 + x;
}
} else {
if (c == dEnd) {
return i;
}
i++;
}
}
return end;
}
public static String unEscape0(String str, int start, int end) {
StringBuilder sb = new StringBuilder();
for (int i = start; i < end; ) {View on GitHub (pinned to b5bda4fb49)