2***@qq.com
2***@qq.com
  • 发布:2026-02-05 17:29
  • 更新:2026-02-05 17:29
  • 阅读:15

项目添加了renderjs模块代码,制作了新的wgt,app安装wgt热更新并重启后,页面加载的app-renderjs.js还是旧版

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 15.5

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: Android

手机系统版本号: Android 12

手机厂商: 模拟器

手机机型: 模拟器

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

参考bug描述

预期结果:

wgt热更新安装成功后,第一次重启,渲染层应该加载最新的app-renderjs.js代码。

实际结果:

wgt热更新安装成功后,第一次重启,渲染层加载的app-renderjs.js还是上个版本的代码。

bug描述:

项目在某个页面或组件新增了renderjs模块代码,推送wgt热更新并完成安装,应用第一次重启后,页面加载的app-renderjs.js文件还是上一个版本的代码,不包括新增的renderjs模块代码。如果再重启一次app,就能恢复正常。

以上问题正常情况下小概率出现,但是我通过adb覆盖apk整包安装后立即检测到热更新并安装重启,极大概率出现。

以下是页面渲染进程抛错:

  [1770281695273][0ms][renderjs]:"150c6436 not found"  
(匿名) @ uni-app-view.umd.js:7  
  [1770281695275][2ms][wxs]:"module comRichtext not found"

其它有用信息:

  • 在出现以上问题时,通过 chrome://inspect 查看逻辑进程加载的app-renderjs.js是最新的,但是渲染进程加载的app-renderjs.js是上一个版本的。
  • 线上项目中出现此问题后,我使用hbuilder创建新的项目,只包含必要的代码,同样存在此问题。
2026-02-05 17:29 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

【官方评审结论】

  1. 反馈完整性

    • 标题、描述、复现步骤、预期/实际结果、环境信息(HBuilderX 4.85、Android 12、Vue3)均已给出。
    • 缺失项
      – 未提供最小可复现 demo 或关键代码片段(新增 renderjs 模块的写法、manifest.json 中 renderjs 配置)。
      – 未给出 wgt 包结构截图或 manifest.json 的 versionName / versionCode 变化对比。
      – 未说明是否已验证“重启两次后版本号正确”——建议补充 plus.runtime.getProperty 读取到的 versionName 日志。
    • 复现步骤提到“adb 覆盖 apk 后立即检测热更新”,需补充:
      – 覆盖安装的是 apk 还是 wgt?
      – 覆盖前后 apk 的 uniRuntimeVersion 是否一致(见知识库“wgt热更新造成的差异”)。
  2. Bug 是否成立

    • 知识库中明确提到:
      – wgt 热更新后,渲染层缓存旧资源属于已知历史问题(release-note-alpha-archive 2.6.13 曾修复 Android v2→v3 升级后 wgt 不生效)。
      – 当 uniCompileVersion(wgt)高于 uniRuntimeVersion(apk)时,默认会弹框警告,但用户未提及弹框,需确认是否已在 manifest.json 关闭校验。
    • 对话知识库中多位用户反馈“首次热更新后仍是旧版本,需手动杀进程再进”,与本次描述一致,可认定为有效缺陷
  3. 概念/平台限制检查

    • renderjs 仅支持 App-Vue,用户环境符合。
    • 未涉及鸿蒙、小程序等不适用场景。

【官方建议】

  1. 请补充最小复现 demo(含新增 renderjs 的 vue 页面及 manifest.json)。
  2. 在出现问题的设备上执行:
    plus.runtime.getProperty(plus.runtime.appid, info => {  
       console.log('runtime:', info.version, 'uniRuntimeVersion:', info.uniRuntimeVersion);  
    });  

    并对比 wgt 中的 uniCompileVersion,确认版本差。

  3. 若版本差导致校验弹框,可在 manifest.json 配置 "compatible": { "ignoreVersion": true } 后重测。
  4. 临时规避:安装 wgt 成功后主动调用 plus.runtime.restart() 两次(第一次仅杀进程,第二次真正重启),观察是否 100% 恢复。
  5. 如仍复现,请抓取首次启动时的 adb logcat(过滤 ConsoleWebView 标签),以便进一步定位渲染层缓存逻辑。
内容为 AI 生成,仅供参考

要回复问题请先登录注册