adt吧 关注:100贴子:184
  • 1回复贴,共1

adt无法使用最新版本build-tools-28问题

只看楼主收藏回复

使用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开发安卓应用还是很经典的,毕竟不用多装个ide。但是,发布应用,建议使用gradle打包,adt比较适合开发调试。由于adt已经不再维护,所以一些问题需要自己处理。一方面,可以调整插件(反编译),另一方面调整sdk。一般,sdk升级build-tools和platforms是不用升级adt的。升级build-tools可以提升adt的编译版本。升级platforms可以提升adt支持的开发版本。升级好以上两个模块,继续开发是没有问题的。
只想使用adt开发的方案:
SDK升级镜像:http://mirrors.neusoft.edu.cn/android/repository/
升级编译工具,请下载需要的build-tools。版本号可查看source.properties文件。adt默认会使用最新的版本。gradle配置buildToolsVersion来选择版本。注意,若升级后,发现dx.jar无法使用,请修正dx.jar问题。新版dx.jar已经去除DxConsole,导致adt无法正确加载。拷贝旧版的DxConsole重新打包dx.jar就可以。
升级开发平台,请下载需要的platforms。版本号可查看source.properties文件。


IP属地:广东1楼2018-07-18 10:16回复
    最近发现,上面提到的国内镜像地址不能使用。大家可以使用新的地址:
    http://www.android-studio.org/
    这个网站的资源汇总得很清晰,而且可以通过云盘下载。最新的sdk tools是android sdk r24.4.1(非官网最新)。这个版本的sdk tools已经可以在线检查,所以相关组件可以通过这个工具升级。
    另外,安卓官网最新的sdk tools也可以下载,这个版本加入了sdkmanager.bat等命令,跟之前版本有些区别。如果你使用了高版本组件并需要licenses,那么需要使用这个版本。
    sdkmanager 工具在 Android SDK Tools 软件包(25.2.3 及更高版本)中提供,并位于 android_sdk/tools/bin/ 下。下面是安卓官网下载地址:
    https://developer.android.google.cn/studio#downloads


    IP属地:广东2楼2020-01-30 21:52
    回复