你原来的代码应该是通过 dex2jar ,先从 dex 转到 jar class 文件,然后通过一般的 java class 反编译器反编译的。如 @RednaxelaFX 所说,java 到 class 编译器一般有 javac 和 ecj 好的反编译器会针对这两个做测试。但是 class 到 dex 相当于又经过一次编译/转换,除了 stacked-based 到 reg-based 字节码以外,还有控制流的变化。只有直接针对 dex 的反编译器,才能有更多信息来反编译。