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

使用Nx搭建React Native项目,Android无法加载本地图片资源

问题描述

我通过以下命令搭建了Nx React Native项目:

npx create-nx-workspace@latest your-workspace-name --preset=react-native --appName=your-app-name

创建Nx应用:

nx g @nx/react-native:app apps/<your-app-name>

创建Nx库:

nx g @nx/react-native:lib libs/<your-lib-name>

之后在本地分支的libs/<your-lib-name>/src/assets目录下添加了资源,但Android应用(不管用Android Studio还是命令运行)都无法加载这些资源,iOS则正常显示。

解决方案

1. 配置Android资源目录引用

Nx React Native的库资源不会自动被Android项目识别,需要手动在Android构建配置中添加资源目录:

  • 打开apps/<your-app-name>/android/app/build.gradle文件
  • 在android代码块内添加sourceSets配置,把libs下的assets目录纳入资源范围:
android {
    // 保留原有配置...
    sourceSets {
        main {
            assets.srcDirs += file("../../libs/<your-lib-name>/src/assets")
        }
    }
}

注意根据你的实际目录结构调整相对路径,确保指向正确的assets文件夹。

2. 清理并重建Android项目

修改配置后需要清理缓存并重新构建,避免旧缓存影响:

  • 进入Android项目目录执行清理命令:
cd apps/<your-app-name>/android
./gradlew clean
  • 返回项目根目录重新运行Android应用:
nx run <your-app-name>:android

3. 检查资源引用路径

确保代码中使用正确的库导入路径引用资源,不要用相对路径:

// 正确引用方式(使用Nx库的别名)
import myImage from '@your-workspace-name/<your-lib-name>/src/assets/image.png';

// 在组件中使用
<Image source={myImage} />

4. 配置Nx库的资源输出(可选)

如果上述步骤无效,可在库的project.json中配置资源输出规则,确保构建时资源被正确打包:
打开libs/<your-lib-name>/project.json,在targets.build.options中添加assets配置:

{
  "targets": {
    "build": {
      "options": {
        "assets": [
          {
            "input": "libs/<your-lib-name>/src/assets",
            "glob": "**/*",
            "output": "./assets"
          }
        ]
      }
    }
  }
}

然后重新构建库:

nx build <your-lib-name>

内容的提问来源于stack exchange,提问作者mudit_sen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 00:57:38