java反編譯遇到問題

測試谷歌GTS時,GtsNmgiarcTestCases包遇到錯誤。雖然後來解決了。 但是中間學習了apk 反編譯。

參考如下鏈接:

https://blog.csdn.net/s13383754499/article/details/78914592

但是 GtsNmgiarcTestCases 用dex2jar時,出現了錯誤。有部分源碼無法反編譯。

報如下錯誤。

java.lang.RuntimeException: can not merge I and Z

搜索到若干講這個錯誤的鏈接。這是混淆時防止dex2jar反編譯的。

https://www.jianshu.com/p/0306cb947d7a

這個鏈接講如何修改dex2jar源碼。

https://bitbucket.org/pxb1988/dex2jar/issues/1/javalangruntimeexception-can-not-merge-i

 

  • OR modify the dex2jar code. return Type I when merge I and Z at com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)

反編譯出來的某些class顯示INTERNAL ERROR

 在這個目錄下,下載了dex2jar的2.x版本。https://github.com/pxb1988/dex2jar  看到這個版本已經解決這個問題。但是沒有找到這個版本編譯好的可執行環境。只好自己編譯:

編譯參考如下網址:

https://travis-ci.org/pxb1988/dex2jar

用gradle編譯。參考如下鏈接安裝:

https://blog.csdn.net/wellplaying/article/details/78616520

下載鏈接 :https://gradle.org/next-steps/?version=5.3&format=bin

下面編譯dex2jar,由於是windows系統,所以用gradlew.bat。

gradlew.bat assemble

第一次失敗,沒有下載成功gradle-4.0-bin.zip。第二次成功。

哈哈在如下路徑找到編譯出來的bin:

但是轉出來的包仍然無法查看部分class。

都是淚啊!

不過我同事是可以的啊!!他的javac和java都是1.8但是比我高一點。難道是這個原因。

不管怎樣。體驗了一把gradle編譯。後面再解吧。

沒有反編譯成功的class也剛好在工程中是開源的。不影響多少。

而且我發現dex-tools-2.1-SNAPSHOT 其實是可以下載的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章