You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo执行build:android构建安卓包图片不显示,开发模式正常,改启动屏配置即构建失败

Expo 托管工作流 Android 构建异常排查方案

环境匹配说明

你当前的开发配置完全命中两类已知构建问题的触发场景:

  • 本地 Expo CLI 版本 4.3.4
  • 项目使用 Expo SDK 40 托管工作流
  • 运行环境为 Windows 10
  • 开发调试阶段功能完全正常,仅正式构建产物出现异常

正式构建包图片不显示,调试阶段加载正常

问题根源

开发调试模式下所有静态资源走本地开发服务器动态拉取,路径容错性极强,无论用别名路径还是相对路径引入图片都能正常显示。正式构建时会将所有静态资源静态打包进APK安装包,一旦匹配不上资源打包规则,流程会静默跳过对应资源——既不抛出构建错误,也不会在运行时提示资源缺失,最终表现为图片加载空白。
你尝试的~开头别名路径写法,在Expo SDK40的Android正式打包流程中存在解析兼容问题:无论别名配置是否正确,所有用该写法引入的图片都会被打包流程判定为无效路径,直接排除在APK资源包外。

处理步骤

  • 打开项目根目录的app.json,检查assetBundlePatterns配置项,如果存在自定义过滤规则,直接替换为SDK40的默认打包规则:
    "assetBundlePatterns": [
      "**/*"
    ]
    
    该配置用于指定打包时需要拷贝进APK的资源范围,SDK40版本如果配置规则写错,会直接跳过assets目录下的全部图片资源,且不会在构建日志中抛出异常。
  • 统一替换所有图片引入的写法,去掉所有~开头的别名路径,全部改为基于当前文件位置的相对路径引入,例如从src/pages/home/目录下引入图片,就写require('../../assets/images/logo.png'),规避别名解析的兼容问题。
  • 清理本地打包缓存:删除项目根目录下的.expo缓存文件夹、node_modules/.cache缓存目录,避免旧的资源索引残留导致的资源丢失。
  • 重新执行expo build:android生成安装包,验证图片加载效果。

修改启动屏backgroundColor后构建直接失败

问题根源

Expo CLI 4.3.4 版本存在已知的配置解析漏洞,对splash节点下的十六进制色值校验逻辑存在bug:当配置的色值带#前缀时,构建流程的配置解析步骤会将色值误判为代码语法节点,直接抛出异常中断构建,和具体设置的色值数值没有关系。

处理步骤

  • 保留splash节点下的背景色配置,去掉色值前面的#号,例如原来写"backgroundColor": "#25c16f",直接修改为"backgroundColor": "25c16f",即可绕过版本的解析bug,正常完成构建。
  • 或者将启动屏的背景色配置迁移到Android原生配置节点下,在app.json的android字段下新增windowBackground配置,同样填写带#号的色值,构建流程不会走splash节点的色值校验逻辑,可以正常识别。
  • 也可以升级本地Expo CLI到4.13.0以上的稳定版本,该色值解析bug在后续CLI小版本中已被修复,该升级不需要改动项目当前的SDK40依赖,仅替换本地CLI工具版本即可生效。

内容的提问来源于stack exchange,提问作者Piyush Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 17:06:04