【问题标题】:Error : image could not be created from at app.createWindow in electronjs错误:无法从 electronjs 中的 app.createWindow 创建图像
【发布时间】:2020-09-10 21:37:58
【问题描述】:

我正在学习 electronjs。我刚开始的一个示例电子项目中出现此错误。

错误:无法从 C:\Users\GS\Desktop\electron\example4\index.js 21:3 中的 app.createWindow 创建图像 这是 index.js 文件代码

const { app, BrowserWindow } = require('electron')
function createWindow () {
    const mainWindow = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            nodeIntegration: true
        }
    })
}
app.on("ready", createWindow);

我不知道为什么会这样,但我复制了一天前在另一个示例项目中工作的相同代码。可能这是一个非常基本的问题,但我试图从过去的 4-5 小时弄清楚,但我仍然没有找到任何解决方案。任何帮助将不胜感激

【问题讨论】:

    标签: javascript electron desktop-application


    【解决方案1】:

    变量mainWindow 必须在函数createWindow () 之外声明,否则它所代表的BrowserWindow 对象在函数退出后将不会保持有效(将被垃圾回收)。这应该可以解决问题:

    const { app, BrowserWindow } = require('electron')
    let mainWindow = null;
    function createWindow () {
        mainWindow = new BrowserWindow({
            width: 800,
            height: 600,
            webPreferences: {
                nodeIntegration: true
            }
        })
    }
    app.on("ready", createWindow);
    

    【讨论】:

      【解决方案2】:

      上面的答案(@free-dom)是正确的,虽然没有必要在函数之外声明mainwindow变量。好像你没有在函数之外声明 mainwindow 那么你必须像这样调用 app.whenReady().then(createWindow)

      const { app, BrowserWindow } = require('electron')
      function createWindow () {
          let mainWindow = new BrowserWindow({
              width: 800,
              height: 600,
              webPreferences: {
                  nodeIntegration: true
              }
          })
      }
      app.whenReady().then(createWindow);
      

      【讨论】:

        猜你喜欢
        • 2019-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-01
        • 1970-01-01
        • 2013-05-25
        相关资源
        最近更新 更多