React Native执行bundleRelease生成release包后后端URI图片不显示
React Native Android Release 包后端URI图片无法加载解决方案
以下是经过验证的可行排查和修复步骤,按优先级执行即可:
- 检查后端图片URI协议与网络安全配置
Android 9(API 28)及以上系统默认禁止Release包使用明文HTTP协议请求资源,Debug包默认不受此限制,是该问题最高发的原因:- 优先将后端图片服务升级为HTTPS协议,为长期合规方案
- 若暂无法升级,新增网络安全配置白名单:
在android/app/src/main/res/xml目录下新建network_security_config.xml,内容如下(替换为实际后端域名):
之后在<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">你的后端域名.com</domain> </domain-config> </network-security-config>android/app/src/main/AndroidManifest.xml的<application>标签中添加属性:android:networkSecurityConfig="@xml/network_security_config"
- 检查ProGuard/R8混淆规则
Release构建默认开启混淆,可能误删RN图片加载依赖的Fresco、Image组件相关类:
在android/app/proguard-rules.pro中添加如下规则:-keep public class com.facebook.react.views.image.** { *; } -keep class com.facebook.imagepipeline.** { *; } -keep class com.facebook.drawee.** { *; } - 清理构建缓存后重新打包
之前手动执行bundle命令残留的资源文件、构建缓存可能引发未知异常,执行以下命令全量清理:
清理完成后再执行cd android ./gradlew clean rm -rf app/build./gradlew bundleRelease构建即可。 - 排查基础权限配置
检查AndroidManifest.xml中是否已添加网络权限:<uses-permission android:name="android.permission.INTERNET" />
如果需要定位具体错误,可以在app/build.gradle的release构建类型配置中添加debuggable true,构建可调试Release包后连接Android Studio查看Logcat的错误日志,可快速定位根因。
内容的提问来源于stack exchange,提问作者Marvelous Ikechi
相关产品推荐
相关产品推荐

