海康sdk项目(java)部署Linux环境相关问题总结
海康sdk项目(java)部署Linux环境相关问题总结问题描述解决方法1.替换海康HCNetSDK.java文件2.更换库文件3.加载sdk库路径的解决方法:4.修改HCNetSDK.java的继承类码云(Gitee)主页:https://gitee.com/banmajiogithub主页:https://github.com/banmajio个人博客:banmajio’s blog海康sdk
海康sdk项目(java)部署Linux环境相关问题总结
码云(Gitee)地址:https://gitee.com/banmajio/HCSDKtoRTMP
github地址:https://github.com/banmajio/HCSDKtoRTMP
个人博客:banmajio’s blog
海康sdk二次开发系列文章
海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)
海康sdk进行历史回放时,码流数据回调过快问题的解决方法
海康sdk项目(java)部署Linux环境相关问题总结
海康sdk部署Linux环境下无法播放子码流的问题
海康sdk项目部署Linux系统时出现java.lang.UnstisfiedLinkError:jnidispatch(xxx)not found in resource path错误
问题描述
海康sdk二次开发的java项目部署到Linux中会出现各种各样的问题。主要集中在以下几点:
1.sdk32位和64位版本的问题。
2.sdk库文件的加载路径问题。
3.HCNetSDK.java继承类的问题。
解决方法
1.替换海康HCNetSDK.java文件
将window版本的HCNetSDK.java文件替换为官网下载的Linux版本sdk的demo中的HCNetSDK.java。
2.更换库文件
将linux版sdk中的所有库文件放到Linux服务器下的一个路径,注意HCNetSDKCom文件夹和其他库路径保存在同一路径下。并且对应好服务器版本与sdk版本。64位的服务器匹配63位的sdk,32位的服务器匹配32位的sdk。
3.加载sdk库路径的解决方法:
加载sdk库路径使用绝对路径,相对路径几乎必出问题。
将以下代码进行替换
替换前:
HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("hcsdk\\HCNetSDK", HCNetSDK.class);
替换后:
HCNetSDK INSTANCE = (此处添加sdk库文件夹的绝对路径) + "/libhcnetsdk.so", HCNetSDK.class);
经过上述替换库路径后,可能会出现错误,返回错误码为107(预览组件加载失败),sdk的组件库是在HCNetSDKCom文件夹内。出现这种错误,根据文档描述需要手动调用接口加载组件库
在上述代码下面添加一下代码
// linux环境下改为: HCNetSDK extends Library
// windows环境下改为:HCNetSDK extends StdCallLibrary
// windows环境下加载dll动态库文件
// HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("hcsdk\\HCNetSDK", HCNetSDK.class);
// linux环境下加载so动态库
HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("home/cameraserver"+ "/libhcnetsdk.so", HCNetSDK.class);
// linux环境下加载组件
public static void tryLoad() {
String strPathCom = home/cameraserver;
HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
struComPath.write();
HCNetSDK.INSTANCE.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());
}
tryLoad()方法请在HCNetSDK.INSTANCE.NET_DVR_Init();之前执行,否则会返回107错误码
4.修改HCNetSDK.java的继承类
修改前:
public interface HCNetSDK extends StdCallLibrary
修改后:
public interface HCNetSDK extends Library
更多推荐
所有评论(0)