位置: IT常识 - 正文

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

发布时间:2024-01-06
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 聚类算法

  • 华为GT2怎么添加待机表盘(华为GT2怎么添加NFC)

    华为GT2怎么添加待机表盘(华为GT2怎么添加NFC)

  • 抖音怎么知道限流了(抖音怎么看有没有被限制)

    抖音怎么知道限流了(抖音怎么看有没有被限制)

  • 预埋网线如何更换(更换预埋网线专业团队)

    预埋网线如何更换(更换预埋网线专业团队)

  • 华为手机应用签名异常(华为手机应用签名不一致)

    华为手机应用签名异常(华为手机应用签名不一致)

  • 数据库系统的控制中枢是什么(数据库系统的控制)

    数据库系统的控制中枢是什么(数据库系统的控制)

  • 抖音在线显示准确吗(抖音显示的在线准吗)

    抖音在线显示准确吗(抖音显示的在线准吗)

  • qq空间访客记录最多显示几年前的(qq空间访客记录是怎么算的)

    qq空间访客记录最多显示几年前的(qq空间访客记录是怎么算的)

  • 目前因特网上最主要的服务方式是(目前因特网最基本最重要的协议是)

    目前因特网上最主要的服务方式是(目前因特网最基本最重要的协议是)

  • 华为返回键怎么调整到右边(华为返回键怎么弄)

    华为返回键怎么调整到右边(华为返回键怎么弄)

  • 抖音里面下载美颜功能是怎么下载的(美图手机下载抖音)

    抖音里面下载美颜功能是怎么下载的(美图手机下载抖音)

  • pvid和vlan id的区别(vland_id)

    pvid和vlan id的区别(vland_id)

  • 小米9永恒模式是啥啊(小米永恒模式开启后会怎么样)

    小米9永恒模式是啥啊(小米永恒模式开启后会怎么样)

  • word文档中哪个是纸张大小(word文档中哪个字体最小)

    word文档中哪个是纸张大小(word文档中哪个字体最小)

  • 虎牙消费金额怎么查询(虎牙消费的钱能要回来吗)

    虎牙消费金额怎么查询(虎牙消费的钱能要回来吗)

  • 计算机系统是指(计算机系统主要指什么)

    计算机系统是指(计算机系统主要指什么)

  • switch检查是否可以运行软件(ns检查是否可以运行)

    switch检查是否可以运行软件(ns检查是否可以运行)

  • 智能知识不学不成不问不知是什么(智能知识不学不成不问不知的意思是什么短一点)

    智能知识不学不成不问不知是什么(智能知识不学不成不问不知的意思是什么短一点)

  • gtx2080和rtx2080区别

    gtx2080和rtx2080区别

  • oppo设置电话背景(oppo如何设置电话背景)

    oppo设置电话背景(oppo如何设置电话背景)

  • 拥塞控制和流量控制的区别(拥塞控制和流量控制都使用滑动窗口机制)

    拥塞控制和流量控制的区别(拥塞控制和流量控制都使用滑动窗口机制)

  • 加微信好友显示对方存在异常行为(加微信好友显示服务器繁忙请稍后再试)

    加微信好友显示对方存在异常行为(加微信好友显示服务器繁忙请稍后再试)

  • 手机电话打不出去怎么回事(手机电话打不出去显示无法访问移动网络)

    手机电话打不出去怎么回事(手机电话打不出去显示无法访问移动网络)

  • CSS网页布局(css网页布局代码)

    CSS网页布局(css网页布局代码)

  • 总结824(总结的拼音)

    总结824(总结的拼音)

  • 电话订票每日开始时间(几点放票)  北京本地宝(电话订票起售时间)

    电话订票每日开始时间(几点放票) 北京本地宝(电话订票起售时间)

  • 利用织梦(dedecms)如何仿站(如何用织梦在本地搭建网站)

    利用织梦(dedecms)如何仿站(如何用织梦在本地搭建网站)

  • 暂时进出境货物和暂准进出境货物
  • 地方教育附加税税率多少?
  • 企业从银行借款归还应付账款
  • 利润表的未分配利润是哪个
  • 销售商品,提供服务以及从事其他经营活动
  • 货运增值税发票抵扣条件
  • 员工出差火车票可以抵扣进项吗
  • 标书费收据丢失怎么办
  • 交通补贴可以抵扣个税吗
  • 专用设备抵免企业所得税目录
  • 企业所得税清算是什么意思
  • 代缴代扣增值税
  • 发票认证系统查不到发票
  • 国家要收回房屋土地怎么补偿
  • 一般纳税人预缴税款几个点
  • 快递公司怎么纳入社保
  • 应收款计提
  • 农产品增值税核定扣除办法
  • 毛利润和纯利润的计算公式
  • 一般纳税人附加税费减免政策
  • 非关联企业无偿拆借资金企业所得税
  • 支付税点是什么意思
  • 加班工资算补贴么
  • 固定资产合计等于固定资产账面价值吗
  • 固定资产要办理什么手续
  • 冲红发票的会计处理办法
  • 初级会计应收账款例题
  • 写一段简单的自我介绍
  • PHP:session_start()的用法_Session函数
  • icqlite.exe进程的详细介绍 icqlite进程的查询 作用是什么
  • regsrv.exe - regsrv是什么进程 有什么用
  • 一品红怎么养才长得好
  • PHP:mcrypt_enc_get_block_size()的用法_Mcrypt函数
  • 工业企业采购部工作职责
  • chat function
  • 卡比托丽娜·瓦西里耶娃
  • 将本月发生的制造费用总额按生产工人
  • 进口货物的报关成交方式
  • 购买铝材会计分录
  • 在sysservers中找不到服务器
  • sql server标识符
  • sqlserver数据库备份
  • 医药发票的税率是多少
  • 取得股票期权的个人所得税问题
  • 个人独资企业进行委托管理要签订劳动合同
  • 怎么做好流水账
  • 远期支票可以背书转让吗
  • 客户以个人名义打对公户现在要求开专票可以吗
  • 没有发票也可以报销
  • 建账时都要建哪些科目
  • 资产负债表与利润表的勾稽关系公式
  • 个体户利润总额是4万应缴纳多少个人经营所得
  • 生产费用总分类核算的程序包括
  • 数据库木马
  • mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法
  • mysql建唯一索引
  • sqlserver数据类型real
  • 怎么操作win10系统
  • 445端口 关闭
  • window 开机启动
  • windows无法打开添加打印机
  • windows 安装源
  • 如何把xp系统的软件删除
  • win8系统怎么设置桌面图标
  • win10系统局域网共享打印机设置
  • win10edge浏览器怎么设置兼容模式
  • vb6.0win10安装教程
  • win10手写输入法怎么设置
  • unity游戏开发的技术路线有哪些
  • linux查找目录的命令
  • 断开网络联结的手机
  • js 页面加载
  • 又一枚精彩的弹幕效果jQuery实现
  • 安卓微信自带聊天背景图片高清
  • 江苏电子税务局电话
  • 基本农田建设的土地
  • 天津怎么网上交电费
  • 贵州省增值税普通发票图片
  • 纳税申报的具体内容
  • 税票电话号码变更影响抵扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号