Skip to Content
异常诊断微信小程序常见问题

微信小程序常见问题与优化方案

问题说明

微信小程序主包(含底部导航页)最大 2M,仅允许 1 个主包;分包最大 2M,最多 100 个。整体分包总大小不得超过 20M。

常见报错及原因

  • 小程序所有分包总大小超 20M
  • 单个分包或主包超 2M

结构说明

  • 主包页面:包含底部导航栏内的页面(含主页面)
  • 分包页面:除主包外的其他页面

举例:项目有 40 个页面,底部导航页 4 个,主包页面共 5 个,则主包含 5 个页面,其余页面分为多个分包。

微信小程序分包结构示意图

优化建议

  • 减少主包页面数量(主包页面数 ≥ 底部导航页数)
  • 避免滥用条件式容器,优先用条件数据
  • 减少复杂视图组件使用
  • 复杂业务建议新建页面实现

操作步骤: 预发布 → 设置 → 主包/分包页面数量设置 → 保存

测试案例

不同方式生成相同数据,页面体积对比:

小程序分包体积测试案例

小程序预发布&发布报错调试方法

在开发小程序时,由于权限配置、修改表数据行为配置错误,可能会触发如下所示的报错信息,为了让自己明确报错信息,或者给官方工作人员提供充足的报错信息来修正问题,你可以按照如下步骤进行报错信息的查看

打开小程序 debug 模式

如上图,点击手机小程序右上角,打开如下所示界面,点击debug模式按钮,确认进入debug模式

重新进入小程序,查看报错信息

按照上述操作之后,会重新进入小程序,此时,你的小程序页面中将出现如下所示的【vConsole】按钮,点击该按钮,即可查看小程序中的所有请求内容,包括报错信息
⚠️ 但由于你的报错可能出现在某些操作之后,或者跳转到其他页面才会出现,为了能够快速的定位报错信息,那么建议在最终触发报错的上一步操作时,先点击报错信息界面下的【Clear】按钮,清除报错之前的所有请求数据信息,而后再去触发报错,再点开【vConsole】查看具体触发的请求

如何查看报错信息

一般报错信息会出现在某个如下所示的 result 指向的 Object 里,你可以点击展开查看 Object 里的详细内容,详细内容中就会包含报错信息

常见报错信息与修正方法

  1. 报错信息: User xxx has no permission for SELECT on ud_zionbangzhuwendang_cd2170

报错原因:权限配置中,没有对【已登陆用户】或【游客】或其它角色配置这张数据表的查询权限ud_zionbangzhuwendang_cd2170(可以通过拼音看出这张表的原名叫 Zion 帮助文档)。

处理办法: 进入权限配置,打开对应角色的这张数据表的查询权限

权限配置示例 相似报错: 没有权限使用某个 API、行为流或 Z AI ,处理办法也是到权限配置中开通对应角色的使用权限

  1. 报错信息: network error / Unknown error

报错情况: 如果手机扫码进入小程序后立即出现报错,可能是由于缓存问题。

处理办法: 可尝试删除小程序,然后重新扫码进入。如果依然报错,说明首页配置有问题,按照上一个方法查看具体报错信息

网络错误示例

  1. 报错信息: server internal error

报错原因: update(更新) 不允许任何字段值都为空的情况出现

处理办法: 检查修改表数据配置,确保配置的字段数据不为空

  1. 报错信息:Validation error of type Wrong Type: argument xxxxx

报错截图示例: 左侧为详细报错信息,右侧为触发这个报错信息的行为

参数类型错误示例

报错原因: 在进行修改/更新操作时,图片中框选的几个字段没有被正常赋值

处理办法: 找到触发改行为的位置,重新进行修改表数据行为的数据绑定,确认所绑定的数据一定有正确类型的值

  1. 行为流运行后一只转圈(加载中)的情况

状况原因: 由于基础版项目服务器算力资源原因,仅能支持 15 s 的行为流运行时间,若行为流较复杂,需要较长时间运行的话,就会出现一只转圈(加载中)的情况。

处理办法:简化行为流处理逻辑或将项目升级至高级版及以上版本

如何获取小程序的 AppID 和页面 Path

获取 AppID

  • 手机端:打开跳转目标的小程序,根据下图位置点击后查看详细信息,再点击更多资料即可看到 AppID

小程序 AppID 获取示例

  • 电脑端:进入小程序后台——工具——生成小程序码 小程序码生成示例 小程序码更多资料示例 小程序码 AppID 示例

获取页面路径

进入小程序的目标页,点击右上角,再点击“复制页面路径”即可获取。

ios暂不支持复制页面路径的方法;复制后会得到一个带有.html后缀的路径,输入路径时要删除这个.html后缀。正确示例:pages/kf2ao6q9/kf2ao6q9。错误示范:pages/kf2ao6q9/kf2ao6q9.html

Last updated on