On-Demand Feature Module构建报错:无法计算applicationId属性值,集合为空
Android 按需动态模块构建报错解决方案
根因说明
该报错核心原因是动态feature模块构建时无法从关联的基础app模块获取到applicationId配置,导致生成BuildConfig时读取配置的集合为空。
排查修复步骤
- 校验动态feature模块的build.gradle首行插件配置,必须使用
com.android.dynamic-feature,不能错用com.android.application或com.android.library插件 - 校验基础app模块的build.gradle的android块是否添加了动态feature声明,必须存在配置:
android { dynamicFeatures = [":ondemand"] } - 校验动态feature模块的build.gradle的dependencies块是否添加了对基础模块的依赖,必须存在配置:
dependencies { implementation project(':app') } - 确认动态feature模块的所有build.gradle配置块(包括defaultConfig、各个productFlavor、buildType块)都没有手动配置
applicationId,动态feature的applicationId会自动继承基础模块的配置,无需手动声明 - 动态feature模块AndroidManifest.xml的
package="com.example.mobile.ondemand"配置可以保留,该属性为模块代码的包名,和applicationId无冲突,不需要删除 - 所有配置修改完成后,执行
./gradlew clean清理本地构建缓存后重新触发构建即可解决问题
内容的提问来源于stack exchange,提问作者Ashwani Kumar
相关产品推荐
相关产品推荐

