Android如何从模块获取资源?主包与theme模块资源调用异常
解决Android主模块调用依赖模块资源的问题
关键解决步骤
修正依赖声明的错误
你当前app模块build.gradle里的依赖声明有空格:implementation project(': theme'),这会导致构建系统无法正确识别依赖模块,必须改成:implementation project(':theme')通过模块包名直接引用资源
打开theme模块的AndroidManifest.xml,找到package属性的值(比如com.example.theme),在主app模块的代码里用完整包名的R类访问资源:// 示例:引用theme模块的drawable资源 int testDrawable = com.example.theme.R.drawable.ic_test;Kotlin写法:
val testDrawable = com.example.theme.R.drawable.ic_test不要直接导入模块的
R类,避免和主模块自身的R类冲突。重新构建项目
执行Clean Project→Rebuild Project,让构建系统重新生成所有模块的资源索引类。
额外排查点
- 确认
theme模块是Android Library类型:检查其build.gradle的插件配置,必须是com.android.library而非com.android.application,只有Library模块的资源才能被其他模块引用:plugins { id 'com.android.library' } - 检查
theme模块的资源文件名是否符合规范:只能用小写字母、数字、下划线,不能有大写或特殊字符。
内容的提问来源于stack exchange,提问作者Slava
相关产品推荐
相关产品推荐

