通常我们在Android studio 打jar包的时候会携带一个配置文件BuildConfig.class,这是编译的时候自动生成的,在我们在其他地方引用这个jar包的时候,可能会产生冲突,所以打包需要忽略这个文件。
task makeJar(type: Copy) {
delete 'build/outputs/xxx.jar'
from('build/intermediates/packaged-classes/release/')
//过滤不需要的class
exclude ("BuildConfig.class")
exclude ('**/BuildConfig.class')
into('build/outputs/')
include('classes.jar')
rename ('classes.jar', 'xxx.jar')
}
makeJar.dependsOn(build)
添加代码之后,可以clear下项目,清下缓存
如果以上打包出来,还是存在这个BuildConfig.class 的,说明项目编译的时候引用到了,可以采取一下的代码来解决
afterEvaluate {
generateReleaseBuildConfig.enabled = false
generateDebugBuildConfig.enabled = false
}
重新编译之后,问题完美解决。
在AndroidStudio中,生成的BuildConfig.class文件可能导致引用jar包时的冲突。文章提供了一个自定义的打包任务,通过排除BuildConfig.class以及其所有子目录下的同名文件,然后重命名classes.jar为xxx.jar,以避免冲突。如果仍有问题,可以通过设置generateReleaseBuildConfig.enabled和generateDebugBuildConfig.enabled为false来禁用BuildConfig的生成,从而解决问题。
1万+

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



