最近新开的一个项目,一直在开发,都是直接跑到设备上,没有签名打包,老板昨天突然找我要一个包,要看,就遇到了这个问题
Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.
> com.android.build.api.transform.TransformException: java.lang.IllegalStateException: Dex archives: setting .DEX extension only for .CLASS files
没有任何头绪的一个异常,在网上找了好多也没有解决,一般来说这是jar包冲突导致的,可能是同一个依赖库引入了不同的版本,因为我是模块化开发,刚开始是以为library引入的问题,可能是多个library引入,导致了问题的出现,在解决两个小时未果之后,就索性备份了一份原代码,然后把代码放到一个module里面,结果打包还是出现这个问题,我就开始找依赖库的东西,所有依赖库删除之后重新单个添加,每添加一个就打个包,最后定位到了Glide这个依赖库,我一直是引用的Glide是4.1.0的,我把它将级为3.7.0就没有问题,查了一下才发现Glide4.0以上的依赖库文件中有一个类文件与com.android.support中的一个类文件冲突了,最后完美解决
干脆引用了一个Glide4.5.0的依赖库
compile('com.github.bumptech.glide:glide:4.5.0') {
exclude group: "com.android.support"
}
annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'
解决的话记得star支持一下