uni-app HBuilderX3.6.13以上版本打包后安卓端图片不显示

发布于 1周前 作者 caililin 来自 Uni-App

uni-app HBuilderX3.6.13以上版本打包后安卓端图片不显示

开发环境 版本号 项目创建方式
Windows win10
macOS Venturn13.0
HBuilderX 3.96

操作步骤:

  • 每次打包都会复现

预期结果:

  • 希望打包后图片可以显示

实际结果:

  • 打包后图片无法显示

bug描述:

目前使用HBuilderX3.96、3.86、3.7.11版本都出现这个问题,并且试过Windows系统和mac系统。 打包后的项目中static文件夹中的图片都无法显示,解压了apk包后发现图片并没有打入包中。 目前无法找到这个问题的原因,问题比较紧急,马上就要上线了,麻烦尽快解决一下,感谢! apk包太大了,上传不了。


11 回复

是不是这原因:static有一批特殊子目录,比如web、h5、app、app-plus,这些特殊子目录是平台专用的。只有打这个平台的包才会打进去。比如h5目录,打apk时不会包含。详见:https://uniapp.dcloud.net.cn/tutorial/platform.html#static


感谢您的回答,我这里图片是直接放在static目录下的,没有其他子目录,还有其他解决方案吗?

如果确认是这些特殊目录引发的

可以修改目录名称,统一替换代码里的路径
如果第一个方案改动太大,也可以考虑自定义编译器的copy逻辑,自行拷贝这些特殊目录 vue2可以参考:https://uniapp.dcloud.net.cn/collocation/vue-config.html vue3可以参考:https://uniapp.dcloud.net.cn/collocation/vite-config.html

您好,我们确认了下,不是这个原因引起的,还有其他解决方案吗?

回复 w***@jiguang.cn: 方案1. 给一个可重现该问题的项目,说明测试步骤,我这里排查下具体原因,方案2. 参考上边回复,自行定制copy

回复 DCloud_UNI_FXY: 已提供可以复现的demo,麻烦您帮忙看一下,官网附件有大小限制,我放在飞书文档中了, https://sxpiwjyo09.feishu.cn/docx/IFXudV5NJoGSVAxrE9EcFsIXnTB

@DCloud_UNI_FXY 已提供可以复现的demo,麻烦您帮忙看一下,官网附件有大小限制,我放在飞书文档中了, https://sxpiwjyo09.feishu.cn/docx/IFXudV5NJoGSVAxrE9EcFsIXnTB

未能重现,如果你还能稳定复现,可以私信你的appid和具体的打包时间

https://ide.dcloud.net.cn/build/download/28171580-8755-11ee-adcd-8989e863d564 刚用3.96正式版的windows,打包的,解压static 有图片,在检查一下,不一样的就是appid和账号了

请问这个问题解决了吗?
怎么解决的?

uni-app 中,使用 HBuilderX 3.6.13 及以上版本打包后,安卓端图片不显示的问题,可能是由于以下几个原因导致的。以下是一些常见的排查和解决方法:


1. 图片路径问题

  • 问题描述:图片路径不正确或未正确引用。
  • 解决方法
    • 确保图片路径正确,建议使用相对路径或绝对路径。
    • 如果是网络图片,确保图片链接可访问。
    • 如果是本地图片,确保图片文件存在于项目中,并且路径正确。

2. 图片格式问题

  • 问题描述:某些图片格式在安卓端可能不被支持。
  • 解决方法
    • 确保图片格式为常见的 pngjpgwebp
    • 如果使用 webp 格式,确保安卓设备支持该格式。

3. 图片未正确打包

  • 问题描述:图片未正确打包到 apk 文件中。
  • 解决方法
    • 检查 manifest.json 文件,确保图片资源被正确引用。
    • 如果是本地图片,确保图片文件位于 static 目录下,因为 static 目录下的文件会被直接复制到打包后的项目中。

4. 图片加载方式问题

  • 问题描述:图片加载方式可能导致安卓端无法显示。
  • 解决方法
    • 如果是网络图片,确保使用 https 链接,避免 http 链接被拦截。
    • 如果是本地图片,使用 requireimport 引入图片,例如:
      <image :src="require('@/static/logo.png')"></image>

5. 安卓端权限问题

  • 问题描述:安卓端可能缺少读取图片的权限。
  • 解决方法
    • manifest.json 中,确保已添加以下权限:
      "permission": {
        "android.permission.READ_EXTERNAL_STORAGE": {},
        "android.permission.WRITE_EXTERNAL_STORAGE": {}
      }

6. HBuilderX 版本问题

  • 问题描述HBuilderX 3.6.13 及以上版本可能存在兼容性问题。
  • 解决方法
    • 尝试升级到最新版本的 HBuilderX,或者回退到之前的稳定版本。
    • 检查 HBuilderX 的更新日志,查看是否有相关问题的修复。

7. 图片缓存问题

  • 问题描述:图片缓存可能导致图片无法更新或显示。
  • 解决方法
    • 清除应用缓存,重新运行项目。
    • 如果是网络图片,可以在图片链接后添加时间戳,强制刷新缓存,例如:
      <image :src="imageUrl + '?t=' + Date.now()"></image>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!