原装代码拖进去能直接编译成功,但是要jni调用就得写jni函数声明,
加上 extern "c"声明和函数就报错
安卓jni调用libusb问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 「已注销」 2023-03-05 00:09关注
“Devil组”引证GPT后的撰写:
JNI是一种Java调用本地代码的机制,需要使用C/C++编写本地代码,并且需要与Java代码进行交互,其中涉及到一些语言特性和约定。可能有以下几个原因导致你遇到的问题:缺少头文件 如果你需要在JNI中调用C/C++函数,需要包含相应的头文件,例如在JNI中调用标准库函数,需要包含<stdio.h>或<stdlib.h>等头文件。如果头文件未包含,则编译器将无法识别函数声明,导致编译错误。 编译器不支持C++语言特性 在C++中,函数名会根据其参数类型和个数进行重载,因此在C++中调用本地函数时,需要使用extern "C"语言特性来指示编译器使用C语言约定来链接函数。如果在C++代码中未使用extern "C"语言特性声明本地函数,则会导致编译错误。 函数签名不匹配 在JNI中,本地函数的签名需要与Java代码中声明的JNI函数签名匹配。如果函数签名不匹配,则会导致编译错误。要确保本地函数的签名与JNI函数的签名匹配,可以使用JNI的命令行工具javah自动生成JNI函数的声明,这样可以避免手动编写JNI函数声明时出现的错误。
解决 无用评论 打赏 举报
悬赏问题
- ¥20 ic卡dump文件校检码解密
- ¥15 关于:接收到的数据不是有效的JSON格式
- ¥15 apdl语言如何增加受力分析
- ¥15 算法对比:学校优化算法与蚁群算法对比
- ¥15 机电一体化系统设计说明书
- ¥20 sgy数据提取地震波速,有人能回答吗小馋
- ¥20 c#实现打开word的功能,并且需要安装成windows服务,word打不开怎么办
- ¥15 python用ARIMA时间预测模型预测数据出错,急!
- ¥30 为什么后端传给前端vue的河流json数据不在地图中显示出来
- ¥50 关于弹性波动方程求解的问题: