Android 功能模块依赖另一个模块找不到资源
Android feature module dependency on another module not finding resources
我有我的基本模块 (Base)、一个动态功能模块 (A) 和一个不是动态功能的公共模块 (Common),它是一个库。
当我将 Common 添加为 A 的依赖项时,我可以使用它的 类 但是我的构建失败了,因为它无法从 Common 中找到资源(错误:找不到符号 R.drawable.myimage)图书馆。
dependencies {
implementation project(":Common")
implementation project(':Base')
}
这是动态功能限制还是导致此问题的原因?
使用
导入您的库模块(通用)
File --> New --> Import Module
你可以随时尝试
Invalidate Caches & Restart
(使用 Android Studio 笨拙地解决了大多数问题)
原来R.id.resource
只会从功能模块获取资源,com.yourdomain.base.R.id.resource
会引用基础模块的资源,而基础模块可以访问库模块的资源。
这解决了我的问题。
在动态功能中安装 SplitCompat activity
override fun onAttach(context: Context?) {
super.onAttach(context)
SplitCompat.install(context)
}
可以参考官方动态投放文档
我有我的基本模块 (Base)、一个动态功能模块 (A) 和一个不是动态功能的公共模块 (Common),它是一个库。 当我将 Common 添加为 A 的依赖项时,我可以使用它的 类 但是我的构建失败了,因为它无法从 Common 中找到资源(错误:找不到符号 R.drawable.myimage)图书馆。
dependencies {
implementation project(":Common")
implementation project(':Base')
}
这是动态功能限制还是导致此问题的原因?
使用
导入您的库模块(通用)File --> New --> Import Module
你可以随时尝试
Invalidate Caches & Restart
(使用 Android Studio 笨拙地解决了大多数问题)
原来R.id.resource
只会从功能模块获取资源,com.yourdomain.base.R.id.resource
会引用基础模块的资源,而基础模块可以访问库模块的资源。
这解决了我的问题。
在动态功能中安装 SplitCompat activity
override fun onAttach(context: Context?) {
super.onAttach(context)
SplitCompat.install(context)
}
可以参考官方动态投放文档