React Native 打包后图片资源不显示怎么办?

百里恒硕 阅读 58

我在本地调试时图片都能正常加载,但用 ./gradlew assembleRelease 打包成 APK 安装到手机上后,所有本地 require 的图片都不显示了,只看到空白。是不是打包的时候没把资源打进去了?

我试过 clean 项目、重新 link assets,也检查了文件路径大小写,都没问题。下面是我的图片引用方式:

import React from 'react';
import { Image } from 'react-native';

const MyLogo = () => {
  return (
    <Image
      source={require('./assets/images/logo.png')}
      style={{ width: 100, height: 100 }}
    />
  );
};

export default MyLogo;
我来解答 赞 19 收藏
二维码
手机扫码查看
2 条解答
Good“怡轩
这个问题我之前也踩过坑,折腾了好久才发现是Android打包配置的问题。关键点在于release模式下默认不会把assets目录下的资源打包进去。

解决方案有两个,我推荐第一种:

1. 在android/app/build.gradle文件里找到android{}块,在里面添加这个配置:

android {
...
aaptOptions {
additionalParameters "--no-version-vectors"
ignoreAssetsPattern "!*.png:!*.jpg:!*.jpeg:!*.gif"
}
}


2. 或者把图片文件放在android/app/src/main/res/drawable目录下(这个目录一定会被打包),但这样就要改引用路径,不推荐。

我当时用的是第一种方法,clean之后重新打包就正常了。另外建议检查下图片文件名有没有特殊字符或空格,这些在debug模式下可能没问题,但release时就会出问题。

还有个坑是gradle缓存问题,如果改完配置还不行,试试删掉android/.gradle目录再重新打包。
点赞 1
2026-03-08 15:20
诸葛怡瑶
我之前这样搞的:检查一下 android/app/src/main/assets 目录下有没有生成图片资源,没有的话执行 npx react-native asset,然后确认 android/app/build.gradlereact 配置块里有没有 assetsSrcFolders = ["../assets"] 这行,或者试试把 assetsSrcFolders = [project.file("../android/app/src/main/assets")] 加进去,再 clean 重新打包试试。
点赞 1
2026-02-27 12:04