Decompiling 如何防止apktool对全局变量排序?

Decompiling 如何防止apktool对全局变量排序?,decompiling,decompiler,apktool,Decompiling,Decompiler,Apktool,首先请原谅我英语不好。我在android应用程序中有一个名为class a的类,其内容如下: public class A { public static final SomeClass1 variable_C = new SomeClass1(); public static final SomeClass1 variable_A = new SomeClass1(); public static final SomeClass1 variable_D = new SomeClass1()

首先请原谅我英语不好。我在android应用程序中有一个名为class a的类,其内容如下:

public class A {


public static final SomeClass1 variable_C = new SomeClass1();
public static final SomeClass1 variable_A = new SomeClass1();
public static final SomeClass1 variable_D = new SomeClass1();
public static final SomeClass1 variable_B = new SomeClass1();


}
当我编译我的项目,然后将我的项目apk交给apktool进行反编译时,apktool反编译类A,如下所示:

public class A {


public static final SomeClass1 variable_A = new SomeClass1();
public static final SomeClass1 variable_B = new SomeClass1();
public static final SomeClass1 variable_C = new SomeClass1();
public static final SomeClass1 variable_D = new SomeClass1();
}

apktool在反编译我的项目时,apk将全局变量顺序更改为字母顺序。 我如何才能强制apktool在反编译我的apk时不按字母顺序排列全局变量,并保持主要全局变量的顺序


谢谢你的回答。

这不是apktool的错。与Java类文件格式不同,Android dex格式要求字段按排序顺序显示,这意味着一旦编译代码,源代码级别的排序就会丢失

定义的静态字段,表示为编码元素序列字段必须按字段\u idx按递增顺序排序

字段标识符列表。这些是此文件引用的所有字段的标识符,无论是否在文件中定义此列表必须排序,其中定义类型(按类型\u id索引)是主顺序,字段名称(按字符串\u id索引)是中间顺序,类型(按类型\u id索引)是次顺序。列表中不得包含任何重复条目