2012-11-20 44 views
2

我想使用Eclipse调试Android应用程序。我已经从apk中提取了Java代码(使用dex2jar,然后是jd-gui),我也从Eclipse中创建了一个来自现有代码的新Java项目,但现在我因为有大量未解析的导入而陷入困境(猜测它是因为在这个项目中没有Google的API)并且不知道如何调试。实际上,我甚至不知道它是否可能......但从smali代码调试是一种痛苦(如果您对smali:D没有任何想法,则更是如此)。从其Java代码调试Android应用程序

你们任何人都知道这是可能的吗?任何指引?

谢谢。通过Eclipse

+0

即使ü[R使用dex2jar + JD-GUI,U可能会面临着杂乱的变量名的疼痛在大多数情况下。所以第一步总是将变量名称更改为正常。 – dumbfingers

+0

您是否真的想通过Eclipse调试程序(例如逐步执行,变量检测等),还是从您的角度来“调试”更多的理解? – Robert

+0

@Robert我想要经典的Eclipse调试,在Java代码上设置断点,并像您说的那样,能够逐步执行,数据检查以及Eclipse调试器允许我做的所有事情。 – Ole

回答

0

调试等步骤一步执行需要AFAIR调试信息存在于APK进行调试。

而且即使APK包含调试你正在运行成大多数Java反编译器不产生在反编译源代码行标志着APK的调试信息源行代码相匹配的问题的信息。因此,您可能能够调试App,但Eclipse无法显示正确的行号。

这在常规的非Android项目中使用JD-GUI时,已经是一个问题。我认为在Android项目中情况更糟。

因此,我看只有一个办法来调试应用程序,你ONL有反编译代码:

修复反编译的代码(希望这是完全反编译 - 有时类恰恰忽略了,因为有一个反编译错误)和将其重新编译为带有调试信息的APK。就我所知,这是唯一的方法。

+0

感谢您的信息,恢复,要做我想做的事情并不容易。 AndroidManifest.xml文件具有android:debuggable =“true”。 另一个问题,当你必须调试一个apk,你应该做什么?,从smali代码调试? (动态分析),只是从Java代码中进行静态分析?两者的混合? – Ole

相关问题