APP运行启动白屏 uni-app Cannot read property 'requestAnimationFrame' of undefined

APP运行启动白屏 uni-app Cannot read property ‘requestAnimationFrame’ of undefined

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 10
HBuilderX 正式
HBuilderX版本号 4.85
手机系统 Android
手机版本号 Android 15
手机厂商 小米
手机机型 小米 13
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • 运行到Android APP基座

预期结果:

  • 显示页面

实际结果:

  • 白屏

bug描述:

14:26:34.814 项目 frontend 开始编译
14:26:36.203 请注意运行模式下,因日志输出、sourcemap 以及未压缩源码等原因,性能和包体积,均不及发行模式。
14:26:36.203 编译器版本:4.85(vue3)
14:26:36.203 正在编译中…
14:26:48.936 项目 frontend 编译成功。
14:26:48.986 ready in 13639ms.
14:26:49.174 手机端调试基座版本号为4.85, 版本号相同,跳过基座更新
14:26:49.463 正在建立手机连接…
14:26:50.612 正在同步手机端程序文件…
14:26:50.815 同步手机端程序文件完成
14:26:51.997 正在启动HBuilder调试基座…
14:26:53.025 应用【frontend】已启动
14:26:53.246 reportJSException >>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught TypeError: Cannot read property ‘requestAnimationFrame’ of undefined
at (app-service.js:33349:30)
at (app-service.js:33222:7)
at (app-service.js:33223:7)
at (app-service.js:42764:5)
at (app-service.js:55726:3)

app-service.js 33343到33351代码:


更多关于APP运行启动白屏 uni-app Cannot read property 'requestAnimationFrame' of undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

我的解决了,可以参考https://ask.dcloud.net.cn/article/37361

更多关于APP运行启动白屏 uni-app Cannot read property 'requestAnimationFrame' of undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的uni-app在Android高版本系统上运行时的兼容性问题。错误信息显示requestAnimationFrame未定义,通常与Android系统版本和JavaScript引擎相关。

问题分析:

  • Android 15使用了较新的V8 JavaScript引擎版本
  • requestAnimationFrame在特定环境下可能未被正确初始化
  • 这通常发生在应用启动阶段的渲染初始化过程中

解决方案:

  1. 更新HBuilderX版本 当前使用的4.85版本可能存在已知兼容性问题,建议升级到最新稳定版。

  2. 检查polyfill配置manifest.json中确保正确配置了ES6转ES5:

    {
      "app": {
        "usingComponents": true,
        "es6": true
      }
    }
    
  3. 添加全局polyfillmain.js入口文件顶部添加:

    if (typeof global === 'undefined') {
      global = {};
    }
    if (typeof requestAnimationFrame === 'undefined') {
      global.requestAnimationFrame = setTimeout;
    }
回到顶部