位置: IT常识 - 正文

Electron打包的桌面应用程序,运行中程序黑屏、白屏等渲染进程崩溃问题解决(electron 打包)

编辑:rootadmin
Electron打包的桌面应用程序,运行中程序黑屏、白屏等渲染进程崩溃问题解决 1. 问题描述

推荐整理分享Electron打包的桌面应用程序,运行中程序黑屏、白屏等渲染进程崩溃问题解决(electron 打包),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:electron打包工具,electron打包exe,electron打包deb,electron打包exe,electron打包exe,electron打包成apk,electron打包deb,electron打包exe,内容如对您有帮助,希望把文章链接给更多的朋友!

使用Electron打包web项目为桌面应用程序,由于运行环境的硬件条件或其他一些原因,导致程序运行过程中黑屏、白屏、崩溃。

2. 解决过程2.1 依赖版本:electron:v8.2.1electron-log: v4.1.1electron-packager: v14.2.12.2 运行环境Electron打包的桌面应用程序,运行中程序黑屏、白屏等渲染进程崩溃问题解决(electron 打包)

win7 x86

2.3 分析过程2.3.1 排除

程序本身运行不会“白屏”,但运行长时间后,会偶尔出现“白屏”情况,重启程序,可以正常显示。故而排除开发的程序本身存在严重问题的可能,转而从白屏的现象本身寻找思路。

2.3.2 寻找规律观察发现:每当程序崩溃时,任务管理器中,此程序的某个进程出了状况(时间久了,不记得具体情况了,当时没有截图)手动复现:任务管理器中,win10关掉electron程序进程内存占用最大的一个(win7的话关掉第二大的),可以复现白屏的效果。进一步发现,手动复现的过程中,实际关掉的是此程序的“渲染进程”。2.3.2 寻找解决方法查找到官方文档中app的事件renderer-process-crashed,当渲染进程webContents崩溃或关闭时触发。鉴于打包后的程序,在崩溃时,无法直接从控制台中拿到log,引入electron-log包(此处不展开),将输出日志记录到本地文件中,在Electron的“入口文件”中,添加下面代码:// 测试一下是否可以捕捉到崩溃的状态app.on("renderer-process-crashed", function (event, webContents, details) { console.error("renderer-process-crashed catched.");});使用上述“手动复现”的方式模拟“白屏”事件发生,查找“日志文件”,查看main.log中输出的内容,发现确实捕捉到了。日志路径:C:\Users\用户名\AppData\Roaming\程序名\logsmain.log:主进程的日志, 入口文件中输出的日志会在这里。renderer.log: 渲染进程的日志,web项目中输出的日志会在这里。既然已经捕捉到了,那么只要在此处对崩溃进行处理就可以了app.on("renderer-process-crashed", function (event, webContents, details) { // 输出一下捕捉到的reason,实际可以根据不同的“原因”进行具体处理 console.error("renderer-process-crashed, reason => ", JSON.stringify(details)); // 基于我在开发的程序本身的设定,此处重启应用就可以了 app.relaunch({args: process.argv.slice(1).concat(['--relaunch'])}); // 尝试关闭所有窗口 app.quit();});结合运维人员的反馈,“白屏”问题没再出现过了。3. 针对上文中内容的一些说明3.1 renderer-process-crashed

返回:

event {Event}webContents {WebContents}killed {boolean} 当渲染器进程webContents崩溃或关闭(杀死)时触发。 已废弃:在新的electron版本中,已经被render-process-gone替代

参考Electron官方API文档 https://www.electronjs.org/zh/docs/latest/api/app#%E4%BA%8B%E4%BB%B6-render-process-gone

3.2 electron-log

参考electron-log的github https://github.com/megahertz/electron-log/

本文链接地址:https://www.jiuchutong.com/zhishi/287998.html 转载请保留说明!

上一篇:vue中的get方法\post方法如何实现传递数组参数(vue get方法)

下一篇:机器学习-10 聚类算法

  • 魅族手机媒体音量自动归零(魅族媒体音量同步)

    魅族手机媒体音量自动归零(魅族媒体音量同步)

  • 抖音访问太频繁请稍后再试(抖音访问太频繁请稍后再试怎么办)

    抖音访问太频繁请稍后再试(抖音访问太频繁请稍后再试怎么办)

  • 2寸电子照片尺寸多大(2寸电子照片尺寸是多少厘米)

    2寸电子照片尺寸多大(2寸电子照片尺寸是多少厘米)

  • 苹果11动态壁纸怎么设置声音(苹果11动态壁纸怎么设置自己的视频)

    苹果11动态壁纸怎么设置声音(苹果11动态壁纸怎么设置自己的视频)

  • 大于500m怎么上传腾讯视频(大于500m的照片怎么弄)

    大于500m怎么上传腾讯视频(大于500m的照片怎么弄)

  • beats需要关机吗(beatsstudio3需要关机吗)

    beats需要关机吗(beatsstudio3需要关机吗)

  • vivox50有微云台吗(vivox50pro的微云台)

    vivox50有微云台吗(vivox50pro的微云台)

  • 照片为什么删不掉(照片为什么删不了)

    照片为什么删不掉(照片为什么删不了)

  • 苹果7白屏开不了机怎么回事(苹果7白屏开不了机怎么办只显示苹果图标)

    苹果7白屏开不了机怎么回事(苹果7白屏开不了机怎么办只显示苹果图标)

  • 苹果丢失了要不要抹掉(iphone丢了之后怎么办)

    苹果丢失了要不要抹掉(iphone丢了之后怎么办)

  • 用充电宝充电对手机有影响吗(用充电宝充电对数据线有影响吗)

    用充电宝充电对手机有影响吗(用充电宝充电对数据线有影响吗)

  • 三星note7电池是哪里生产的(三星note7电池为什么会爆炸)

    三星note7电池是哪里生产的(三星note7电池为什么会爆炸)

  • wifi能看到手机的浏览内容吗(wifi能看到手机软件密码吗)

    wifi能看到手机的浏览内容吗(wifi能看到手机软件密码吗)

  • 天猫双十二有双十一优惠力度大吗(2019双十二的天猫规则)

    天猫双十二有双十一优惠力度大吗(2019双十二的天猫规则)

  • 微信没好友辅助怎么解封(微信没好友辅助怎么办)

    微信没好友辅助怎么解封(微信没好友辅助怎么办)

  • 拼多多闪电退货是什么意思(拼多多闪电退货怎么关闭)

    拼多多闪电退货是什么意思(拼多多闪电退货怎么关闭)

  • 苹果蓝牙耳机手势操作(苹果蓝牙耳机手机没有弹窗怎么回事)

    苹果蓝牙耳机手势操作(苹果蓝牙耳机手机没有弹窗怎么回事)

  • 抖音抢镜怎么调大图框(抖音里的抢镜怎么弄的)

    抖音抢镜怎么调大图框(抖音里的抢镜怎么弄的)

  • wincc怎么弹出小窗口(wincc如何弹出窗口)

    wincc怎么弹出小窗口(wincc如何弹出窗口)

  • 如何分享百度云的文件(如何分享百度云下载的照片)

    如何分享百度云的文件(如何分享百度云下载的照片)

  • 魅族16s防水等级(魅族16s防水级别)

    魅族16s防水等级(魅族16s防水级别)

  • linux运行级别(linux运行级别定义在哪个文件)

    linux运行级别(linux运行级别定义在哪个文件)

  • iPhonex关机键在哪里(苹果x关机按键)

    iPhonex关机键在哪里(苹果x关机按键)

  • win10待机画面怎么改(win10待机屏幕图片设置)

    win10待机画面怎么改(win10待机屏幕图片设置)

  • 计提存款利息
  • 提前买礼物
  • 提高资产利用率,增加销售收入
  • 怎么增加资产减少负债
  • 进项税额在贷方怎么登明细账
  • 男的交社保有什么好处
  • 土地摊销计入在建工程吗
  • 小规模纳税人印花税减免税优惠政策
  • 境外机构在境内发行的人民币债券
  • 大病医疗保险能税前扣除吗
  • 已付款已收货但发票未到账务处理怎么做
  • 航空货运单可以由谁来填写
  • 委托加工合同如何标注多个地址
  • 研发部门领用材料会计分录
  • 企业转让股权取得的收入征税吗
  • 设备销售并负责安装税率是多少
  • 增值税普通发票有什么用
  • excel单元格内换行macbook
  • 营改增前取得的不动产出售的计税方法
  • 开户许可证复印件是什么
  • 补提以前年度费用在年度报表中怎么填
  • mac怎么更换默认打开方式
  • 以前年度损益调整属于哪类科目
  • 事业单位财务预算管理制度
  • 红冲暂估需要附件吗
  • w10系统有线连接网络
  • 送给经销商的祝福语
  • 无线路由器如何桥接wifi信号
  • 工地需要安装什么标识牌
  • 购买财务软件会有操作流程吗
  • 世界上最早的计算机是
  • 梅拉和艾斯德斯
  • php chr函数
  • php序列化和反序列化函数
  • 纳税人数字签名怎么填
  • php发送post请求api
  • 小规模纳税人记账需要哪些账本
  • 无形资产的处置方式
  • window cuda
  • vue2和vue3的区别大么
  • uniapp微信小程序兼容
  • 纳税检查企业所得税企业合并
  • 应付职工薪酬如何确认
  • 个体户做账流程新手必看
  • 企业购进专门用于研发的生产设备
  • 织梦怎么用
  • 工会经费的会计分录2022
  • 增值税专用发票几个点
  • 所有小规模都能开专票吗
  • 公司股东和自然人的关系
  • sql2005备份数据库
  • 转让不动产与销售不符
  • 个税专项附加扣除标准调整
  • 对方给我们等额的钱
  • 仪器校准费用会计科目
  • 黄金珠宝加工销售怎么样
  • 房屋免租期的房子能卖吗
  • 施工单位代建收费合理吗
  • 以前年度损益调整会计分录
  • 咨询服务业成本比例
  • 现金和银行存款的区别
  • 企业股东的出资方式
  • mysql清空数据表怎么恢复
  • 直接内存访问控制器是什么
  • xp系统和2003系统的异同
  • Windows Server 2008下Backup功能全通透
  • 如何使用airplay2
  • Mac OS X Mavericks的Finder打开不同标签的操作步骤
  • linux find命令查找文件名
  • 进程cmd.exe
  • opengl 位图
  • javascript冒泡排序代码
  • jquery理解
  • angular动态生成表单
  • 安卓 aac
  • python怎么获取命令行参数
  • node.js和ajax的顺序
  • 现在德国的普通话怎么样
  • 加强税务工作
  • 律师属于什么工作单位
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设