测试谷歌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 其实是可以下载的。