今天一位同事打包的时候发现,打指定渠道包时使用eclipse打包会报错Unable to execute dex: Multiple dex filesdefine
报错显示的信息是BuildConfig类出现重复,使用AS解开jar包发现确实有这个BuildConfig类,但是没有找到和它重复的类文件。查阅安卓资料发现打包时会自动生成BuildConfig类文件,然而由于引用的jar包中早已存在该文件就导致了上述报错。只需要把这个类文件删除就可以解决问题,但是这个类文件是从哪里冒出来的,再次查阅资料发现原来AS导出jar的时候由于种种原因,会连带一些杂质一起导出就是各种BuildConfig文件和R.class文件。
解决方案:在模块的gradle中指定需要打包的类,排除无用的类就可以了。只需要加入下面几行代码就可以剔除无用的类文件
from file('build/intermediates/classes/release')
archiveName = 'xxx.jar'
destinationDir = file('../libs/')
exclude "**/**/BuildConfig.class"
exclude "**/**/BuildConfig\$*.class"
exclude "**/R.class"
exclude "**/R\$*.class"
include "**/*.class"
完结撒花~~~~
感谢下面几位前辈勇于探索和无私奉献的精神
https://blog.youkuaiyun.com/lvxiangan/article/details/71601451
https://blog.youkuaiyun.com/edisonchang/article/details/51296265
本文介绍了在Android项目中遇到的BuildConfig类重复导致的打包错误问题及其解决方案。通过排除特定类文件,解决了由重复BuildConfig类引发的问题。
2102

被折叠的 条评论
为什么被折叠?



