我有一个没有任何来源的现有.APK文件。我想在Bluestacks(或其他)模拟器上使用Eclipse调试它。最后,我想设置一个断点,但是现在,我只想让它在模拟器上运行。我不是在谈论只使用adb在模拟器上安装它然后在那里运行。我没有成功获得由Eclipse构建的结果.apk在模拟器上运行。
以下是我完成的步骤:
但是这个项目在Eclipse中有错误!所以我尝试了接下来的步骤:
不好! logcat显示错误,例如“dalvikv - 线程退出未捕获的异常”。还有其他一些关于无法实例化应用程序和java.lang.ClassNotFoundException的logcat消息。
问题1: 有人能告诉我还有什么其他步骤可以把它变成一个“好”的项目吗?有没有明显的东西我缺少类?
一旦我能够成功地“运行”或“调试为”,我就会想通过设置断点来调试它。但我似乎无法获得正确的源文件夹。我有.smali文件作为步骤3中提到的apktool步骤的结果。此外,我尝试了各种工具,如dex2jar和jd-gui,以便我有.java文件。但每当我指出Eclipse这些源所在的文件夹(并且我检查了“搜索子文件夹”)时,Eclipse会说“找不到源”。和“编辑源查找路径”。我也试过把 工作区的/ src文件夹中的源。
问题2: 我在哪里可以放置源代码以便Eclipse找到它们?这些源文件可以是.smali还是.java?
答案 0 :(得分:3)
所以基本上你要做的就是从打包的APK文件中提取源代码。你所取得的成就是我能做的最大努力。在打包APK文件时,由于混淆,无法获得准确和真实的源代码。所以你所达到的是你能达到的最大值。我使用这些工具,但从未提取过一个真正的.java文件,正如作者可能写的那样。它将包含一些不被eclipse理解的编译器地址和优化。
答案 1 :(得分:0)
问题1:您将有很多步骤从.apk文件获取android项目。这项工作被命名为倒置,解码......
问题2:尝试问题1你可以做到。
注意:如果编写该apk的开发人员使用proguard,则只能看到代码的跟随。