Ubuntu20.04下Electron启动报错:Uncaught Error in native callback求助
解决Ubuntu20.04下Electron + ffi-napi启动时的"Error in native callback"问题
这个报错的核心原因是ffi-napi作为原生Node模块,编译时使用的ABI版本与Electron自带的Node环境不匹配,导致加载时触发dlopen错误。以下是针对性的解决步骤:
安装
electron-rebuild工具,用于重新编译原生模块适配Electron的ABI:npm install --save-dev electron-rebuild执行重新编译命令,自动匹配Electron版本编译ffi-napi及其依赖:
npx electron-rebuild若使用yarn包管理器,替换为
yarn electron-rebuild清理编译缓存与重新安装依赖,避免残留的不兼容编译产物:
rm -rf node_modules/.cache build/ npm install补充系统编译依赖,确保Ubuntu环境具备原生模块编译能力:
sudo apt-get update sudo apt-get install build-essential cmake python3(可选)检查Electron与ffi-napi的版本兼容性:
确认你的Electron版本是否在ffi-napi支持的范围内,Node.js 16对应的Electron兼容版本大致为18.x-22.x,若版本不匹配可调整Electron版本到兼容区间。(可选)处理asar打包后的加载问题:
若后续打包应用时仍出现类似错误,需在package.json中配置asar解压原生模块:{ "build": { "asarUnpack": [ "node_modules/ffi-napi/**", "node_modules/ref-napi/**" ] } }
完成以上步骤后,重新执行npm start即可正常启动应用。
内容的提问来源于stack exchange,提问作者Raul
相关产品推荐
相关产品推荐

