使用jdk1.8编译的jar需要使用最新的dx才能够编码。如果使用build-tools-25,那么会报错,提示不支持class的版本(52)。把sdk的build-tools替换成最新的28,gradle打包工程没有问题,但是adt在加载dx时会报错:Unable to build: the file dx.jar was not loaded from the SDK folder。
有兴趣的朋友可以反编译adt插件去查看源码。负责dx操作的类是DexWrapper。该类不是直接运行命令行来执行dx的,而是加载dx.jar后调用run函数:
新版dx.jar已经去除DxConsole,这样就导致adt无法正确使用dx。
解决方法很简单,只需要把旧版的DxConsole打包到新版dx.jar就行。
这是我重新打包build-tools-28的dx.jar,里面加入build-tools-25的DxConsole:
https://pan.baidu.com/s/1louvseoK7y26M-2iCwNFsA
其它adt维护技术可以查看我的贴吧文章:
https://tieba.baidu.com/p/5799800962