【问题标题】:Trying to execute/debug an existing APK file with Eclipse尝试使用 Eclipse 执行/调试现有的 APK 文件
【发布时间】:2012-10-08 03:37:40
【问题描述】:

我有一个没有任何来源的现有 .APK 文件。我想在 Bluestacks(或其他)模拟器上使用 Eclipse 对其进行调试。最后,我想设置一个断点,但现在,我只想让它在模拟器上运行。我不是在谈论仅使用 adb 将其安装在模拟器上然后在那里运行。我没有成功让 Eclipse 构建的生成的 .apk 在模拟器上运行。

这是我已经完成的步骤:

  1. 我将 .apk 重命名为 .zip 并解压缩到一个文件夹中。
  2. 在 Eclipse 中,我创建了一个新的“来自现有代码的 Android 项目”。在下一个屏幕“导入项目”中,我浏览到解压 apk 的文件夹。

但是这个项目在 Eclipse 中有错误!所以我尝试了接下来的步骤:

  1. 我在 .apk 上执行了 apktool,它创建了一个文件夹,用于相同的导入 步骤 2 中提到的。现在项目不再有错误。
  2. 在 Eclipse 中,我将此项目作为 Android 应用程序“运行”或“调试”,并在模拟器上启动。

不好! logcat 显示诸如“dalvikv - 线程退出但未捕获异常”之类的错误。还有其他关于无法实例化应用程序和 java.lang.ClassNotFoundException 的 logcat 消息。

问题 1: 有人可以告诉我还需要哪些其他步骤才能将其变成“好”项目吗?关于课程,我有什么明显的遗漏吗?

一旦我可以让它“运行为”或“调试为”成功,然后我会想通过设置一个断点来调试它。但我似乎无法正确获取源文件夹。由于步骤 3 中提到的 apktool 步骤,我有 .smali 文件。此外,我尝试了各种工具,例如 dex2jar 和 jd-gui,因此我有 .java 文件。但是,每当我告诉 Eclipse 这些源所在的文件夹(并且我检查了“搜索子文件夹”)时,Eclipse 都会说“找不到源”。和“编辑源查找路径”。我也试过把 工作区的 /src 文件夹中的源代码。

问题 2: 我可以将源代码放在哪里以便 Eclipse 找到它们?这些源文件可以是 .smali 还是 .java?

【问题讨论】:

    标签: android eclipse debugging apk


    【解决方案1】:

    所以基本上你要做的是从打包的 APK 文件中提取源代码。你所取得的成就是我也能做到的最大值。由于在打包 APK 文件时进行了混淆,因此无法获得准确和真实的源代码。所以你达到的就是你能达到的最大值。我使用了这些工具,但从未像作者所写的那样提取真正的 .java 文件。它将包含一些eclipse不理解的编译器附加和优化。

    【讨论】:

      【解决方案2】:

      问题 1:从 .apk 文件中获取 android 项目需要很多步骤。这项工作被命名为逆向、解码……

      • 您可以使用 apktool 将 apk 反编译为 .smali 文件
      • 然后使用 javaDecompiler 将 .smali 文件反转为 .java 文件
      • 创建项目并将 .java 文件导入其中

      问题 2:试试问题 1 你就可以了。

      注意:如果编写该 apk 的开发人员使用 proguard,您只会看到代码的后续。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-07
        • 2014-12-12
        • 2013-10-25
        • 1970-01-01
        相关资源
        最近更新 更多