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

  • 大学校长是什么级别行政干部责任是什么

    大学校长是什么级别行政干部责任是什么

  • 利用百度知道做网络推广(用百度知道怎么赚现金)

    利用百度知道做网络推广(用百度知道怎么赚现金)

  • 红米9a用的高通的处理器吗(红米9a用的什么cpu)

    红米9a用的高通的处理器吗(红米9a用的什么cpu)

  • 华为荣耀30s是否有nfc功能呢(华为荣耀30s是否支持无线充电)

    华为荣耀30s是否有nfc功能呢(华为荣耀30s是否支持无线充电)

  • 抖音支持的视频格式有哪些(抖音支持的视频尺寸是多少)

    抖音支持的视频格式有哪些(抖音支持的视频尺寸是多少)

  • 为什么华为nova5没有耳机孔(为什么华为nova5没有隐私空间)

    为什么华为nova5没有耳机孔(为什么华为nova5没有隐私空间)

  • 火山内容重复警告怎么办(火山显示多次发布违规)

    火山内容重复警告怎么办(火山显示多次发布违规)

  • 华为nova7se和华为nova7的区别(华为nova7se和华为nova9哪个好)

    华为nova7se和华为nova7的区别(华为nova7se和华为nova9哪个好)

  • 抖音限流什么原因(抖音抖音限流是怎么回事?)

    抖音限流什么原因(抖音抖音限流是怎么回事?)

  • 垂直式和叠瓦式硬盘区别(垂直式和叠瓦式硬盘哪款好)

    垂直式和叠瓦式硬盘区别(垂直式和叠瓦式硬盘哪款好)

  • qq怎么改成电脑在线(qq如何改成电脑版)

    qq怎么改成电脑在线(qq如何改成电脑版)

  • 华为p40返回键怎么设置(华为p40返回键怎么设置到右边)

    华为p40返回键怎么设置(华为p40返回键怎么设置到右边)

  • 微信来视频只会震动(微信来视频为什么只响一声)

    微信来视频只会震动(微信来视频为什么只响一声)

  • 黑猫投诉怎样才能把帖子删除(黑猫投诉怎样才能完成)

    黑猫投诉怎样才能把帖子删除(黑猫投诉怎样才能完成)

  • 手机本地音乐在哪里(手机本地音乐在哪里找到)

    手机本地音乐在哪里(手机本地音乐在哪里找到)

  • 华为p30pro的卡槽在哪里(华为p30pro的卡槽在哪里怎么打开)

    华为p30pro的卡槽在哪里(华为p30pro的卡槽在哪里怎么打开)

  • 宾馆订后砍五折啥意思(酒店5折砍价)

    宾馆订后砍五折啥意思(酒店5折砍价)

  • 小米9出厂有送保护膜吗(小米9出厂有送耳机吗)

    小米9出厂有送保护膜吗(小米9出厂有送耳机吗)

  • wps历史记录在哪(wps历史记录在哪手机和电脑同步吗)

    wps历史记录在哪(wps历史记录在哪手机和电脑同步吗)

  • 微信收款二维码停用(微信收款二维码发给别人有危险吗)

    微信收款二维码停用(微信收款二维码发给别人有危险吗)

  • 苹果11pro max为什么会发烫(苹果11pro max为什么屏幕发黄)

    苹果11pro max为什么会发烫(苹果11pro max为什么屏幕发黄)

  • 拼多多备注写哪里(拼多多里的备注是什么意思)

    拼多多备注写哪里(拼多多里的备注是什么意思)

  • lgv50支持国内5g吗

    lgv50支持国内5g吗

  • 照片怎么压缩成1m(照片怎么压缩成zip格式)

    照片怎么压缩成1m(照片怎么压缩成zip格式)

  • 钉钉已删除消息咋找到(钉钉已删除消息怎么恢复)

    钉钉已删除消息咋找到(钉钉已删除消息怎么恢复)

  • 华为p30pro微信视频怎么开启(华为p30pro微信视频录屏怎么能录到声音)

    华为p30pro微信视频怎么开启(华为p30pro微信视频录屏怎么能录到声音)

  • Windows10 提示“病毒和间谍软件定义更新失败”?(windows10提示更新11)

    Windows10 提示“病毒和间谍软件定义更新失败”?(windows10提示更新11)

  • 开源项目ChatGPT-website再次更新,累计下载使用1600+(开源项目网站)

    开源项目ChatGPT-website再次更新,累计下载使用1600+(开源项目网站)

  • vue关于下载文件常用的几种方式(vue文件下载功能)

    vue关于下载文件常用的几种方式(vue文件下载功能)

  • 小规模纳税人取得专票和普票区别
  • 房地产开发企业土地增值税预缴
  • 家里财产分割
  • 首套房契税税率是多少?
  • 小规模纳税人自动升为一般纳税人条件
  • 劳务费可以开工程服务发票吗
  • 专用发票超过360天认证期怎么办?
  • 缴纳的增值税如何申请退税
  • 收到国外提供免费样品怎么入账?
  • 开出支票如何入账
  • 个税多交了怎么退税
  • 小规模纳税人不允许开具零税率发票
  • 基本户上的钱打到个人账户上,写什么用途
  • 存货算动产吗
  • 外账的作用
  • 施工企业开专票还是开普票好
  • 物业管理公司代收水电费如何开票
  • 预提工程成本的会计分录
  • 资产减值损失列示在利润表哪里
  • 生活服务业包括哪些行业照片
  • 小规模跨年发票可以入账吗
  • 发票查重
  • 研发设备一次性计入研发费用账务处理
  • 冲减材料采购成本
  • 个贷系统平帐专户A
  • 超级本能加装硬盘吗
  • le启动exe是什么意思
  • linux 分享文件
  • PHP:Memcached::getStats()的用法_Memcached类
  • mac 查看当前用户
  • php投票代码
  • php单例模式应用场景
  • uniapp官方教程
  • 长期借款利息的账务处理涉及的会计科目有
  • opencvcuda
  • opencv 方框识别
  • chk命令
  • 社会团体所得税汇算清缴
  • 住宿费可以抵扣进项吗
  • 房产税收特点有哪些
  • 一般纳税人购销合同印花税减免政策
  • 新版电子税务局怎么增加办税人员
  • 小微企业的认定标准企业所得税
  • 核定征税是什么意思
  • 企业缴纳的住房公积金的税率
  • 账务核对包括哪些内容
  • 公司给员工租的房子计入什么科目
  • 施工企业外经证交费的时候工会经费是怎么计算的
  • 缴纳上月增值税及本月预缴增值税
  • 货款减免协议
  • 收到设计费分录怎么写
  • 只有发票没有银行回单怎么做账
  • 招待费如何做账科目
  • 差旅费的会计处理
  • 资产负债表货币资金怎么填
  • 创建mysql表sql语句
  • mysql5.7.24安装配置教程
  • 电脑win7win8win10操作系
  • 五种修改方法
  • xp更改远程端口
  • js实现下拉框联动
  • androidstudio更改工程名字
  • dos脚本 菜鸟教程
  • arp如何绑定
  • javascript中的函数该如何理解
  • js querySelector() 使用方法
  • cmd替换文件命令
  • vue怎么实现多页面
  • nodejs读取文件夹下的所有文件
  • android重写方法
  • nodejs作为后端
  • python3的urllib
  • java教程 视
  • java中线程池原理
  • asyncio使用
  • 烟草局收入怎么样
  • 河南省国家税务总局网站
  • 青岛税务社保缴费下载平台
  • 合伙企业可以融资吗
  • 国家税务局全国增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设