tencentyun / TRTCSDK

腾讯云TRTC音视频服务,国内下载镜像:
https://cloud.tencent.com/document/product/647/32689
1.21k stars 1.07k forks source link

【Electron】-【8.9.102】【m1pro macos trtc_electron_sdk.node 文件找不到】 #511

Closed AllenTom closed 2 years ago

AllenTom commented 2 years ago

【当前现象】 依赖安装完成后启动Electron控制台输出错误。

是否是文件仅支持x86_64不支持arm64e架构的问题。

trtc_electron_sdk.node:1 Uncaught Error: Cannot open node_modules/trtc-electron-sdk/build/Release/trtc_electron_sdk.node: Error: dlopen(node_modules/trtc-electron-sdk/build/Release/trtc_electron_sdk.node, 0x0001): tried: '/Users/duzhengheng/Desktop/project/msc22/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/node_modules/trtc-electron-sdk/build/Release/trtc_electron_sdk.node' (no such file), '/Users/duzhengheng/Desktop/project/msc22/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/MacOS/../../../node_modules/trtc-electron-sdk/build/Release/trtc_electron_sdk.node' (no such file), 'node_modules/trtc-electron-sdk/build/Release/trtc_electron_sdk.node' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/trtc_electron_sdk.node' (no such file), '/usr/lib/trtc_electron_sdk.node' (no such file), '/Users/duzhengheng/Desktop/project/msc22/node_modules/trtc-electron-sdk/build/Release/trtc_electron_sdk.node' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/trtc_electron_sdk.node' (no such file), '/usr/lib/trtc_electron_sdk.node' (no such file)
    at Object../node_modules/trtc-electron-sdk/build/Release/trtc_electron_sdk.node (trtc_electron_sdk.node:1)
    at __webpack_require__ (bootstrap:24)
    at fn (hot module replacement:61)
    at Object../node_modules/trtc-electron-sdk/liteav/trtc.js (trtc.js:24)
    at __webpack_require__ (bootstrap:24)
    at fn (hot module replacement:61)
    at Module../src/trtc.ts (main.js:103051)
    at __webpack_require__ (bootstrap:24)
    at fn (hot module replacement:61)
    at Module../src/hooks/TRCTVideo.ts (main.js:97694)

【SDKAppID】 1400575330

【房间号】 无

【useID】 无

【问题时间段】 2021.11.22

【机型】 macbook m1pro

【之前版本有无此问题】 有 【复现概率】 必现

【复现途径】 按照教程导入SDK之后就会显示

【Demo 复现途径】

【相关附件】

sophiezzhou commented 2 years ago

首先,可以确认下你在arm64架构上 $ node -p process.arch arm64

然后可以通过以下命令切换到 x64 架构环境上 $ arch -x86_64 zsh

可以查看下现在的架构环境是否正确

$ node -p process.arch x64

再使用nvm安装node

nvm install v14.15.4

接着,再次确认下现在的架构环境是否正确

$ node -p process.arch x64

现在就可以进行依赖安装,并启动Electron控制台

后续也可以继续回到 arm64架构环境 $ exit $ arch arm64

目前我们的 electron sdk 是暂时没有支持 arm64 架构的 .node 文件的。

AllenTom commented 2 years ago

问题已经解决了,使用x64架构的Nodejs就可以了,Rosetta可以自动转译,目前没发现任何问题。

szwang-seedtech commented 1 year ago

你好,能详细说一下使用“x64架构的Nodejs”是什么意思嘛?我这边也遇到了这个问题,而且我用得应该就是x64架构的 bdfb079f0608248af40e9a4dcc165e2 7163705d38c2c74fd44fd83d3783862 24983cebc67dad559c18b599eee13d0

sophiezzhou commented 1 year ago

目前从electron 10.6.403 版本已经支持了双架构 Screen Shot 2023-01-11 at 11 46 56 详细可看下腾讯云文档:https://cloud.tencent.com/document/product/647/62562#90d73165-fbbd-4aea-90d2-4a0a9bbf4d8a

你好,能详细说一下使用“x64架构的Nodejs”是什么意思嘛?我这边也遇到了这个问题,而且我用得应该就是x64架构的 bdfb079f0608248af40e9a4dcc165e2 7163705d38c2c74fd44fd83d3783862 24983cebc67dad559c18b599eee13d0