最近没有修改依赖项目lib,只是升级了AS版本到 3.0.1,结果在跑项目时,出现build失败。首先,看下问题,
FAILURE: Build failed with an exception.* What went wrong: Could not resolve all files for configuration ':debugCompileClasspath'. > Failed to transform file 'hyphenatechat_3.2.0.jar' to match attributes {artifactType=android-classes} using transform JarTransform> Transform output file D:\AStudioWork\xxxxx\libs\hyphenatechat_3.2.0.jar does not exist.
大致的意思,在build lib中的class文件时,没找到其中一个jar文件,这个文件不存在。
于是,翻看了下各个libs下的文件,发现确实没有。但是以往build的时候,并没有出现上述问题。仔细想了想,以前build没有出现这个问题,说明这个jar在项目中没有被用到,因为如果有用到,而jar包又确实不存在,肯定会build失败。所以,就想把该jar注释掉试试看build会如何
compile files('xxxxxx.jar') //compile files('libs/xxxxxx_3.2.0.jar')
compile files('xxxxxx.jar')
重新build后,可以build成功
回顾以前,想起来,当初项目用到的一个功能,需要使用第三方的lib,所以使用了上面的jar。
后来,项目中又用到另一个功能,需要使用同一个服务商的另一个lib,这个lib包含了上面lib的功能,所以把原来的删除掉,但是compile files这块还存在没有去掉
结论:新的版本as,至少3.0.1,增加了对编译时使用lib的校验,如果没有找到相应的jar,就会报错。
好了,写到这里,希望能给小伙伴带来一些帮助