AGP7升级后LibraryBuildType无isDebuggable属性,库模块是否无需配置debuggable?
AGP 7.0+ 库模块
debuggable配置调整说明 核心结论
从Android Gradle Plugin 7.0版本开始,com.android.library类型的模块无需再单独配置debuggable属性,相关调试符号的保留逻辑已重构为跟随最终打包的应用模块配置自动生效。
调整背景说明
- AGP 4.x及更早版本中,库模块使用通用
BuildType类,isDebuggable属性会直接决定库编译时是否保留调试符号,因此官方文档曾要求调试库代码时必须给库配置debuggable true。 - AGP重构构建体系后单独拆分出
LibraryBuildType类,移除了库模块独立的调试开关,相关逻辑做了统一优化:- 当最终打包的应用变体配置为
debuggable true时,构建流程会自动保留所有依赖库的调试符号,无需库模块做任何配置 - 当应用变体为release非调试类型时,所有依赖库的调试符号会统一被剥离,避免包体积冗余
- 当最终打包的应用变体配置为
迁移适配建议
- 库模块构建脚本中原来配置的
isDebuggable = true相关代码可以直接删除,不会影响库代码的调试能力 - 如果有基于原有
isDebuggable属性实现的自定义构建逻辑,可以改为通过匹配关联的应用构建类型属性、或者自定义buildConfigField的方式实现同等效果
内容的提问来源于stack exchange,提问作者William Reed
相关产品推荐
相关产品推荐

