2012-10-08 70 views
0

我有一個現有的.APK文件,沒有任何來源。我想用Bluestacks(或其他)模擬器上的Eclipse進行調試。最終,我想設置一個斷點,但現在我只想讓它在模擬器上運行。我不是在說使用adb將其安裝在模擬器上,然後在那裏運行。我一直未能成功獲得由Eclipse構建的.apk,以便在模擬器上運行。嘗試使用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這些源代碼的文件夾(並且我已經檢查了「搜索子文件夾」),Eclipse就會說「Source not found」。和「編輯源查找路徑」。我也嘗試將 源文件放在工作區的/ src文件夾中。

問題2: 我在哪裏可以把源代碼以使Eclipse會找到他們呢?這些源文件可以是.smali還是.java?

回答

3

所以基本上你正在嘗試做的是提取源出打包APK文件。你所取得的成就是我可以做的最大。由於打包APK文件時出現混淆,因此無法獲得確切的真實源代碼。所以你已經達到的是你可以達到的最大值。我使用了這些工具,但從未能像作者寫過的那樣提取真正的.java文件。它將包含一些eclipse無法理解的編譯器addtitons和優化。

0

問題1:您將有很多步驟從.apk文件獲取android項目。這項工作被命名爲倒車,解碼...

  • 您可以使用apktool反編譯APK到.smali文件
  • 然後使用javaDecompiler逆轉.smali文件。java文件
  • 創建項目和文件導入的.java進去

問題2:嘗試的問題1,你可以做到這一點。

注意:如果開發商誰編碼的APK搭配使用ProGuard,你只看到遵循的代碼。

相關問題