React Native安卓构建版本图片无法显示问题求助
React Native安卓端图片加载失败问题
我的React Native应用在iOS构建版本中图片显示完全正常,但安卓构建版本加载图片时会抛出“无法打开文件”的错误。已经尝试调整文件夹结构但问题依旧,奇怪的是同一位置的本地HTML文件能正常加载。
生成URI的代码
import {Platform} from 'react-native'; function BaseURI(){ let baseURI = './assets/'; if (Platform.OS === 'android') { baseURI = 'file:///android_asset/'; } return baseURI; } function AssetURI(url){ return BaseURI() + url; } export {BaseURI, AssetURI}
加载图片使用的URI示例:file:///android_asset/resources/buttons/Logo.png
排查与解决方法
- 检查路径大小写:安卓对文件名大小写敏感,iOS不敏感,确认代码中写的文件名(比如
Logo.png)和实际文件系统中的文件名完全一致,包括大小写。 - 确认资源目录配置:
- 图片必须放在安卓项目的
android/app/src/main/assets目录下,路径层级要和URI匹配(比如resources/buttons/Logo.png对应assets/resources/buttons/Logo.png)。 - 若使用
react-native init创建项目,需在android/app/build.gradle中确保assets目录被正确配置:android { sourceSets { main { assets.srcDirs = ['src/main/assets', '../../assets'] // 根据实际路径调整 } } }
- 图片必须放在安卓项目的
- 改用官方加载方式:别手动拼
file://路径,直接用require让RN自动处理跨平台:const logo = require('./assets/resources/buttons/Logo.png'); // 组件中使用 <Image source={logo} /> - 清理缓存重建:执行
cd android && ./gradlew clean清理安卓缓存,再回到根目录跑react-native run-android重新构建。 - 验证APK内容:把APK后缀改成.zip解压,检查
assets目录里有没有目标图片,确认打包时文件被正确包含。
内容的提问来源于stack exchange,提问作者Andrew1024
相关产品推荐
相关产品推荐

