最近在调试海康SDK时,遇到了标题写的这个错误。

A callback was made on a garbage collected delegate of type 'XXX.CHCNetSDK+RemoteConfigCallback::Invoke'.

Visual Studio 调试模式下,显示 你的应用进入了中断状态,但当前未执行任何受选定调试引擎支持的代码(例如,仅在执行本机运行时代码)。“System.ExecutionEngineException”类型的未经处理的异常在 未知模块。 中发生,完全无法看出问题的原因。

后查到 https://stackoverflow.com/questions/44546875/getting-the-error-a-callback-was-made-on-a-garbage-collected-delegate-of-type,了解到是因为在调用海康SDK时,传入了一个回调函数,此回调函数会在调用完SDK时自动释放掉,所以SDK在回调过程中报错。

知道了原因,就好修改了,声明一个全局的委托变量来作为回调函数就可以了。

fs.readlink(path, [callback(err,linkString)]) 由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”) ) 接收参数: path          路径 callback    回调,传递2个参数,异常err 和  linkString返回的链接字符串 代码如下: fs.readlink = function(path, callback) {   callback = makeCallback(callback);   if (!nullChe fs.appendFile(filename, data, [options], callback) 由于该方法属于fs模块,使用前需要引入fs模块(var fs = require(“fs”) ) 接收参数: 1. filename {String} 2. data {String | Buffer} 3. options {Object}       encoding {String | Null} default = ‘utf8′ 由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”) ) 接收参数: fd                   文件open时传递的文件描述符。 callback         回调 代码如下: var fs = require(‘fs’); fs.open(‘/path/demo1.txt’, ‘a’, function (err, fd) {   if (err) {     throw err;   fs.fu fs.symlink(srcpath, dstpath, [type], [callback(err)]) 由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”) ) 接收参数: srcpath                 为源目录或文件的路径 dstpath                它是存放转换后的目录的路径,默认为当前工作目录 type                      默认值:’file’ , 可选值 ‘dir’, ‘file’, 或者 ‘junction’ ,该项仅用于Windo 开启语音对讲前所需步骤参考参考前一篇文章【海康威视】WPF客户端二次开发:【1】监控视频画面预览(SDK初始化、设备登录、监控画面预览) 本篇重点讲解在进行语音对讲开发时遇到的深坑; 二、开启语音对讲 1、基础流程: SDK初始化; 2、海康设备登录; 3、设备预览; 4、开启语音对讲功能即可: 2、核心代码: //语音对讲回调函数封装 VOICED 【react-native】0.57版本打包报错:Could not resolve all files for configuration ':app:releaseCompileClasspath 16638