React Native 加载HTTP协议URI图片调试正常 打包APK后无法显示
问题根因
Android 9(API Level 28)及以上版本默认禁止应用发起未加密的HTTP明文请求,React Native调试模式内置的开发配置默认会放行HTTP流量,因此调试阶段图片加载正常,打Release包时会使用系统默认的安全策略,拦截HTTP请求导致图片无法加载。
修复方案
两种方案按需选择即可:
- 方案1(推荐):资源升级HTTPS
将所有图片资源的访问地址从HTTP协议更换为HTTPS协议,无需修改应用配置,完全符合安卓系统安全要求,是长期最优方案。 - 方案2:修改安卓配置放行HTTP流量
如果暂时无法完成HTTPS升级,可通过修改配置临时允许HTTP请求:- 打开项目路径下的
android/app/src/main/AndroidManifest.xml文件 - 在
<application>标签中添加android:usesCleartextTraffic="true"属性,参考示例:
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme" <!-- 新增下面这行配置 --> android:usesCleartextTraffic="true">- 重新打包Release APK即可正常加载HTTP图片。
- 打开项目路径下的
内容的提问来源于stack exchange,提问作者Randi Firmansyah
相关产品推荐
相关产品推荐

