此问题与Android有关。
我们最近将我们的react-native项目从Expo迁移到裸工作流程。但是,我们遇到一个问题,即在运行内置的apk文件时无法加载图像。
[使用react-native android
在仿真器或设备上调试时,一切正常。但是,对于内置的APK图片,根本不会出现。
我们的构建按如下进行
react-native bundle --platform android /
--dev false /
--entry-file index.js
--bundle-output android/app/src/main/assets/app.bundle
--assets-dest android/app/src/main/res
android/gradlew -p android clean
android/gradlew -p android assembleRelease
我看到第一步将我们的图像捆绑到以下目录中
android/app/src/main/res/drawable-mdpi
项目结构看起来像这样
index.js
App.js
ios/
android/
app/
assets/
package.json
images/
image01.png
image02.png
screens/
MyScreen.js
[app/assets/package.json
让我们避免包含绝对路径
{
"name": "@assets"
}
并且在MyScreen.js中,在render()
方法中
<Image source={require('@assets/images/image01.png')} />
解压缩内置的apk(app-release.apk
),可以看到在MANIFEST.MF
文件中引用了图像
/release/app-release/META-INF
像这样
Name: res/drawable-mdpi-v4/app_assets_images_image01.png
SHA-256-Digest: [BLAH]
Name: res/drawable-mdpi-v4/app_assets_images_image02.png
SHA-256-Digest: [BLAH]
在release/app-release/res/drawable-mdpi-v4
之内
存在图像并说明其与清单名称相同。
所以我对为什么在设备上运行apk时为什么它们不显示感到完全困惑。
这不是一个罕见的问题,与此同时,还有其他一些堆栈溢出问题,但是我经历了所有这些,并且没有建议的解决方案对我们有用。
Gradle版本= 5.6.3
RN版本= 61.5
您可以在渲染Image的地方显示代码吗?
而且还可以张贴文件夹结构的图片吗?
因为文件的路径不同,这取决于我们是在调试还是在发行版中工作。