我试图让我的Windows电子应用程序建立一个稳定的蓝牙连接到另一个设备("正常"蓝牙,而不是BLE)。我已经坚持安装node-gyp,但我终于得到了它安装正确(至少我认为是这样)。现在我再次卡住,需要一些提示继续下去。
我尝试了各种不同的libs,但似乎没有什么对我有用。在尝试使用节点蓝牙(在为电子设备重建它时失败了)之后,我决定尝试一下蓝牙串口。但我又一次被重建问题卡住了。
我在this方面遵循了Bruce的建议(尝试了一些其他方法之后),但当我应该更改binding.gyp中的variables属性时,我不得不停止操作。电子文件夹和蓝牙串行端口文件夹都不包含此文件(我暂时将它们安装在不同的文件夹中,否则它们会相互覆盖)。
尝试使用node-gyp rebuild --target=0.30.1 --dist-url=https://atom.io/download/atom-shell
重建蓝牙串行端口失败,并显示以下输出:
$ node-gyp rebuild --target=2.0.2 --dist-url=https://atom.io/download/atom-shell
gyp info it worked if it ends with ok
gyp info using node-gyp@3.7.0
gyp info using node@8.11.3 | win32 | x64
gyp info spawn C:\python27\python.EXE
gyp info spawn args [ 'C:\\Users\\sbraendle\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'msvs',
gyp info spawn args '-G',
gyp info spawn args 'msvs_version=auto',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\sbraendle\\Desktop\\Electron\\BluetoothTest\\build\\config.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\sbraendle\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\sbraendle\\.node-gyp\\iojs-2.0.2\\common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=C:\\Users\\sbraendle\\.node-gyp\\iojs-2.0.2',
gyp info spawn args '-Dnode_gyp_dir=C:\\Users\\sbraendle\\AppData\\Roaming\\npm\\node_modules\\node-gyp',
gyp info spawn args '-Dnode_lib_file=C:\\Users\\sbraendle\\.node-gyp\\iojs-2.0.2\\<(target_arch)\\iojs.lib',
gyp info spawn args '-Dmodule_root_dir=C:\\Users\\sbraendle\\Desktop\\Electron\\BluetoothTest',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'C:\\Users\\sbraendle\\Desktop\\Electron\\BluetoothTest\\build',
gyp info spawn args '-Goutput_dir=.' ]
gyp: binding.gyp not found (cwd: C:\Users\sbraendle\Desktop\Electron\BluetoothTest) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (C:\Users\sbraendle\AppData\Roaming\npm\node_modules\node-gyp\lib\configure.js:345:16)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\sbraendle\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=2.0.2" "--dist-url=https://atom.io/download/atom-shell"
gyp ERR! cwd C:\Users\sbraendle\Desktop\Electron\BluetoothTest
gyp ERR! node -v v8.11.3
gyp ERR! node-gyp -v v3.7.0
gyp ERR! not ok
实际设置为:
- Win 7 x64
- 节点8.11.3
- 节点-gyp3.7.0
- 电子2.0.2(不完全确定,但它在安装时说)。
或者,我也开放给其他方法就如何建立一个蓝牙连接与电子,只要有人已经得到了它的工作。
我不知道我昨天做错了什么,但今天我把所有东西都装了,这一次电子的安装似乎工作正常,以及蓝牙串口的安装(或者node-bluetooth,这是我第二次尝试)。我试着在不添加任何蓝牙引用的情况下运行应用程序。程序启动正常。但是当我添加了像const bluetooth = require('node-bluetooth');
这样的行时,两种情况下都崩溃了(节点蓝牙和蓝牙串行端口),错误如下:
$ npm start
> bluetoothtest@1.0.0 start C:\Users\sbraendle\Desktop\Electron\BluetoothTest
> electron .
App threw an error during load
Error: Das System hat keinen Meldungstext für die Meldungsnummer 0x%1 in der Meldungsdatei %2 gefunden.
\\?\C:\Users\sbraendle\Desktop\Electron\BluetoothTest\node_modules\node-bluetooth\build\Release\BluetoothSerialPort.node
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
at Object.Module._extensions..node (module.js:671:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:172:20)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at Module.require (module.js:586:17)
at require (internal/module.js:11:18)
at bindings (C:\Users\sbraendle\Desktop\Electron\BluetoothTest\node_modules\node-bluetooth\node_modules\bindings\bindings.js:76:44)
at Object.<anonymous> (C:\Users\sbraendle\Desktop\Electron\BluetoothTest\node_modules\node-bluetooth\index.js:3:48)
抱歉,错误消息中使用了德语:我想完全复制一下。翻译过来就是:
系统在邮件文件% 2中找不到邮件号为0x % 1的任何邮件文本。
有什么建议吗?
1条答案
按热度按时间fv2wmkja1#
我知道这个线程是一年前打开的,但今天早上我遇到了同样的问题,最后使电子与蓝牙串口工作!
1.删除
node_modules
文件夹和package.lock
文件。1.打开您的终端:
npm install --save-dev electron@4.2.6
和npm install --save-dev electron-rebuild
。注意:electron的版本应该是那个版本。最近的版本是在Node 12上构建的,这将无法构建蓝牙库。您可以在这里了解更多信息:https://www.npmjs.com/package/electron-releases
1.此外,在您的终端中:
npm install --save bluetooth-serial-port
.我的版本是2.2.4到写的时候。1.将此脚本添加到您的包中。json:
"scripts":{"rebuild": "electron-rebuild"}
1.在您的终端中:
npm install
,然后是npm run rebuild
1.你的项目现在应该编译好了,你在electronic里面有了一个可以工作的蓝牙串口模块,我用HC-06收发器测试了这个模块。