Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取Android动态模块内资源的标识符?_Java_Android_Kotlin_Android App Bundle_Dynamic Feature Module - Fatal编程技术网

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