測試谷歌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 其實是可以下載的。