You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android如何从模块获取资源?主包与theme模块资源调用异常

解决Android主模块调用依赖模块资源的问题

关键解决步骤

  1. 修正依赖声明的错误
    你当前app模块build.gradle里的依赖声明有空格:implementation project(': theme'),这会导致构建系统无法正确识别依赖模块,必须改成:

    implementation project(':theme')
    
  2. 通过模块包名直接引用资源
    打开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类冲突。

  3. 重新构建项目
    执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:05:57