反编译Java文件后出错
我尝试反编译一个Java文件,但反编译给我的不是确切的代码,而是使用goto语句和标签的代码 现在我想提取使用过的代码。有人能帮忙吗反编译Java文件后出错,java,android,decompiling,Java,Android,Decompiling,我尝试反编译一个Java文件,但反编译给我的不是确切的代码,而是使用goto语句和标签的代码 现在我想提取使用过的代码。有人能帮忙吗 @Override public int getItemViewType(int i) { int j = 1; if (!displaySearchField || i != 0) goto _L2; else goto _L1 _L1: j = 0; _L4: return j; _L2: int k = i;
@Override
public int getItemViewType(int i)
{
int j = 1;
if (!displaySearchField || i != 0) goto _L2; else goto _L1
_L1:
j = 0;
_L4:
return j;
_L2:
int k = i;
if (displaySearchField)
{
k--;
}
if (!(items.get(k) instanceof Group))
{
continue; /* Loop/switch isn't completed */
}
if (displaySearchField) goto _L4; else goto _L3
_L3:
return 0;
if (!displaySearchField) goto _L4; else goto _L5
_L5:
return 2;
}
不能使用反编译代码。在编写代码之后,当它被编译时,一些代码由
安卓也是。当你进行反编译时,你会得到一个改变的信息。所以你会出错。永远不要相信反编译器的输出。即使它编译得很干净。即使您可以对原始版本和往返版本运行相同的单元测试套件,并获得相同的结果 决不要试图手动“修复”反编译代码的问题。如果你发现自己在想,“嗯,这看起来几乎是对的……我想我能解决这个问题,”停下来。不要那样做 真诚地
写过反编译器的人。我知道这件事,但是可以相应地更改代码以获得原始代码,所以您能帮我吗?不。。这很痛苦,而且你不知道wt是完全由代码编写的,在那里所有的代码都被修改了。android做了一些压缩类的事情,它删除了不完全使用或根本不需要的代码。我试过一次,每件事都让我头疼,所以之后就没试过。