反编译Java文件后出错

反编译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;

我尝试反编译一个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;
    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做了一些压缩类的事情,它删除了不完全使用或根本不需要的代码。我试过一次,每件事都让我头疼,所以之后就没试过。