Jetpack Compose项目添加Android库构建失败报Uninitialized.application.id
报错原因
该报错是Android Studio Arctic Fox 2020.3.1版本自带的Jetpack Compose初始模板配置,与新增Android Library模块的默认配置不兼容导致:Compose模板默认在根项目配置中统一处理applicationId注入,新增Library模块未适配该规则,Manifest合并阶段无法读取到有效的applicationId配置触发报错。
修复步骤
- 打开新增Android Library模块的模块级
build.gradle文件(路径为[你的库模块名称]/build.gradle) - 在
android配置块中添加namespace属性,属性值为库模块的唯一包名,无需修改原有其他配置:
android { // 替换为你的库模块自定义包名 namespace "com.example.custom.library" compileSdk 31 defaultConfig { minSdk 21 targetSdk 31 // 原有配置保持不变 } }
- 若添加namespace后仍未解决,打开库模块的
src/main/AndroidManifest.xml文件,删除<manifest>根标签上的package属性,该版本AGP已支持使用build.gradle中的namespace替代Manifest的package声明,可避免包名冲突。 - 同步Gradle配置后重新执行构建即可。
特殊场景适配
如果你的库模块Manifest文件中使用了${applicationId}作为组件(如ContentProvider、FileProvider)的android:authorities等属性的占位符,需要额外在模块的defaultConfig块中添加占位符声明:
android { defaultConfig { manifestPlaceholders = [applicationId: "com.example.custom.library"] } }
内容的提问来源于stack exchange,提问作者Eric Cen
相关产品推荐
相关产品推荐

