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
我的解决了,可以参考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在特定环境下可能未被正确初始化- 这通常发生在应用启动阶段的渲染初始化过程中
解决方案:
-
更新HBuilderX版本 当前使用的4.85版本可能存在已知兼容性问题,建议升级到最新稳定版。
-
检查polyfill配置 在
manifest.json中确保正确配置了ES6转ES5:{ "app": { "usingComponents": true, "es6": true } } -
添加全局polyfill 在
main.js入口文件顶部添加:if (typeof global === 'undefined') { global = {}; } if (typeof requestAnimationFrame === 'undefined') { global.requestAnimationFrame = setTimeout; }

