位置: 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 聚类算法

  • 山姆会员副卡怎么取消绑定(山姆会员副卡怎么赠送好友)

    山姆会员副卡怎么取消绑定(山姆会员副卡怎么赠送好友)

  • word文档怎么加边框(word文档怎么加入项目符号)

    word文档怎么加边框(word文档怎么加入项目符号)

  • 电脑没声音是怎么回事(电脑没声音是怎么一回事)

    电脑没声音是怎么回事(电脑没声音是怎么一回事)

  • 拼多多没有违规词为什么要考试(拼多多没有违规记录为什么限制推广)

    拼多多没有违规词为什么要考试(拼多多没有违规记录为什么限制推广)

  • 华为手套模式坏处(华为手套模式有什么用)

    华为手套模式坏处(华为手套模式有什么用)

  • 读取应用信息要关闭吗(读取应用信息什么意思)

    读取应用信息要关闭吗(读取应用信息什么意思)

  • mp4是视频格式还是音频(mp4是视频格式还是播放)

    mp4是视频格式还是音频(mp4是视频格式还是播放)

  • 优酷视频审核要多久(优酷上传视频审核)

    优酷视频审核要多久(优酷上传视频审核)

  • soul怎么才算已读(soul怎么判断对方把你删除)

    soul怎么才算已读(soul怎么判断对方把你删除)

  • 小米mix2s短信闪退(小米手机来信息闪灯)

    小米mix2s短信闪退(小米手机来信息闪灯)

  • excel怎么设置第一行一直都在(excel怎么设置第一页和第二页一样)

    excel怎么设置第一行一直都在(excel怎么设置第一页和第二页一样)

  • kiwtl00h是什么手机(kiwul00是什么手机)

    kiwtl00h是什么手机(kiwul00是什么手机)

  • 电池效率是什么意思(电池倍率性能)

    电池效率是什么意思(电池倍率性能)

  • qq扩列匹配失败怎么回事(qq扩列匹配失败请重试)

    qq扩列匹配失败怎么回事(qq扩列匹配失败请重试)

  • 图形的两种表示方式为(图形的两大类)

    图形的两种表示方式为(图形的两大类)

  • 华为悬浮球怎么设置(华为悬浮球怎么打开)

    华为悬浮球怎么设置(华为悬浮球怎么打开)

  • 京东退货卖家不审核怎么办(京东退货卖家不同意怎么办)

    京东退货卖家不审核怎么办(京东退货卖家不同意怎么办)

  • 荣耀10手机能开空调吗(荣耀10手机开机键坏了怎么开机)

    荣耀10手机能开空调吗(荣耀10手机开机键坏了怎么开机)

  • 快手怎么打开青少年模式(快手怎么打开青少年守护模式)

    快手怎么打开青少年模式(快手怎么打开青少年守护模式)

  • 小米6x是什么处理器(小米6x是什么处理器型号)

    小米6x是什么处理器(小米6x是什么处理器型号)

  • 苹果怎么改蓝牙耳机名(苹果怎么改蓝牙耳机名字)

    苹果怎么改蓝牙耳机名(苹果怎么改蓝牙耳机名字)

  • 快手开直播身份证号被占用怎么弄

    快手开直播身份证号被占用怎么弄

  • 金立手机媒体音量怎么打开(金立手机媒体音量怎么调)

    金立手机媒体音量怎么打开(金立手机媒体音量怎么调)

  • led手环手表有什么功能(led智能手环手表说明书)

    led手环手表有什么功能(led智能手环手表说明书)

  • Web实训项目--网页设计(附源码)(web实训报告怎么写)

    Web实训项目--网页设计(附源码)(web实训报告怎么写)

  • 免交增值税怎么账务处理
  • 新公司第一年要做亏
  • 财税实务与核算会计的区别在哪里?
  • 税务机关如何处理公司多交税
  • 电子税务局怎么查进项发票明细
  • 机械租赁属于什么分类
  • 固定资产折旧直接计入成本
  • 企业亏损法定盈亏是什么
  • 有两种税率的如何填申报表
  • 现金折扣冲减销售收入冲销项税吗
  • 销售收入打折后怎么算
  • 原材料没发票能结转成本吗?
  • 余利宝怎样
  • 工程预付款包括工人工资吗
  • 未分配利润转出
  • 管理部门购入固定资产
  • 计提生产经营
  • 钢结构安装有哪些工种
  • 绿化费用明细
  • gdp等于消费加储蓄加税收
  • 向承兑人提示付款
  • 减免税备案申请表范文
  • 鸿蒙系统怎么自动填充密码
  • 怎么跟银行谈停息挂账
  • 事业单位授权支付一体化退库
  • 在windows7提供了一种什么技术
  • PHP:xml_parser_set_option()的用法_XML解析器函数
  • 公司收到发票怎么做账
  • aliapp.exe是什么意思
  • 股份有限公司向股东借款
  • powergenie是什么程序
  • php解析url参数
  • 睿因无线路由器怎么设置
  • 若依系统怎么样
  • php中的正则表达式怎么使用
  • 利润分配怎样做分录
  • php的mysql_query
  • vports命令怎么用
  • php类的定义
  • 研发费用如何做加计扣除
  • 服务费减免税款怎么算
  • java队列用法
  • 查看php
  • 变卖废旧物资的增值税税率
  • mongodb 随机获取一条数据
  • 库存商品和固定资产是单位会计资产核算的两项内容
  • 代扣员工伙食费
  • SQLSERVER2008中CTE的Split与CLR的性能比较
  • 设备出租当月要确认收入吗
  • 积分兑换礼品需要什么
  • 无形资产如何摊销公式
  • 塔吊租赁和购买的区别
  • 成本结转怎么结转
  • 资产负债表编制
  • 捐赠利得计入资产成本吗
  • 刻章费发票怎么开
  • win7清除usb插拔记录
  • win8系统怎么清理缓存
  • ubuntu编辑器在哪
  • 用虚拟光驱安装系统教程
  • win10电脑无权限访问文件怎么解除
  • winole.exe - winole是什么进程
  • ahci模式下安装win7蓝屏
  • 苹果mac电脑不会关机
  • zmweb.exe是什么进程
  • centos7.6安装kvm
  • windows下合并分区
  • node modules干嘛的
  • cocos做游戏
  • unity中
  • bootstrap-Treeview实现级联勾选
  • 字符串转enum
  • node.js中用什么方法处理get、post请求的参数
  • android camera preview
  • javascript参考书
  • asynctask缺点
  • 财税专家刘杨简历图片介绍
  • 上海网上申报软件怎样下载
  • 众筹在中国的发展潜力
  • 上海税务怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设