Java 如何获取Android动态模块内资源的标识符?
我正在进行动态模块功能交付,我在动态模块中也有一些可提取的资源。我面临的问题是,我无法获取资源的标识符,但是如果我直接引用其中任何一个,那么它工作得很好。因此,只有在尝试访问资源标识符时才会出现问题。目前我正在尝试这样做:Java 如何获取Android动态模块内资源的标识符?,java,android,kotlin,android-app-bundle,dynamic-feature-module,Java,Android,Kotlin,Android App Bundle,Dynamic Feature Module,我正在进行动态模块功能交付,我在动态模块中也有一些可提取的资源。我面临的问题是,我无法获取资源的标识符,但是如果我直接引用其中任何一个,那么它工作得很好。因此,只有在尝试访问资源标识符时才会出现问题。目前我正在尝试这样做: val resID = resources.getIdentifier("drawable_name", "drawable",packageName) 还有这个 val resID = resources.getIdentifier
val resID = resources.getIdentifier("drawable_name", "drawable",packageName)
还有这个
val resID = resources.getIdentifier("drawable_name", "drawable","explicit package name of module")
但是,当我直接访问drawable(如R.drawable.mydrawable
)时,它就可以工作了。
请指导我如何访问资源标识符,因为当前它每次返回0,这意味着它无法访问标识符。尝试将
.modulePluginName
作为后缀添加到packageName中
例如您的packageName是com.android.test
,动态模块名是moduleHello
。然后设置pluginPackageName=“com.android.test.moduleHello”
如要访问资源,请执行以下操作:
val resID = resources.getIdentifier("drawable_name", "drawable",pluginPackageName)
尝试将
.modulePluginName
作为后缀添加到packageName中
例如您的packageName是com.android.test
,动态模块名是moduleHello
。然后设置pluginPackageName=“com.android.test.moduleHello”
如要访问资源,请执行以下操作:
val resID = resources.getIdentifier("drawable_name", "drawable",pluginPackageName)
我已经试过了,显式使用模块的包名,但效果不太好,所以我最终使用了reflection。我已经试过了,显式使用模块的包名,但效果不太好,所以我最终使用了reflection