-1

制造商不再支持旧的 android apk 文件。

我想出了什么可能是错的,因为它正在从java调用一个方法:

在其中一个 java 文件中(在 dex2jar 之后查看并使用 jd-gui 查看)

进口 com.htc.buletoothconfirm;

我想做的就是将其更改为

导入 com.htc.bluetoothconfirm;

然后将其重新编译.class 文件。然后将该.class 文件重新插入到 .jar文件中。然后我将重建.apk文件

问题是我不能用 jd-gui 改变任何东西。

如果我尝试使用 javac 编译单个 .java 文件,它会给我导入错误(文件中有很多导入)。

我曾尝试使用 jad反编译类文件,这就是我正在使用的。

尽管它给出了很多“无法完全反编译”的错误。

我想我想做的只是将整个java文件内容从jd-gui复制并粘贴到记事本中,将其保存为.java,然后将其编译为.class,然后将其重新插入.jar文件中。

但说起来容易做起来难。由于所有的导入,我不知道如何将这个新的 .java 文件编译成 .class 文件。(例如,我从哪里得到 import android.content.intent; 等等?我真的需要保留目录结构等等吗?)

有没有更简单的方法?我只是想改变一行。其余的都可以保持不变。

4

1 回答 1

2

您应该使用ASM-AndroidDedexer等工具反编译 apk 文件。如果你想生成一个类,你可以使用 sdcard 在设备上生成,然后创建一个 dex。文件及其对应的 .jar。我使用BCEL 和 ASM在设备上生成字节码。

于 2012-09-20T13:09:42.730 回答