目录
以下是博主自己使用JNA过程中遇到的一些问题汇总,分享给大家,少踩坑。
1 undefined symbol:xxx
在so中找不到指定的符号,往往是因为函数在so中没有定义导致的。
解决方法:
检查C中函数是否正确定义。
2 Java映射C数组乱码
直接使用getBytes传参乱码
typedef struct
{
int enable;
char static_ip[20];
char netmask[20];
char gateway[20];
char dns1[20];
char dns2[20];
} network_eth;
extern "C"{
int sdk_set_network_eth(const char* ip, network_eth* network_param);
}
//函数定义
int sdk_set_network_eth(const char *ip, network_eth *network_param){
if (strlen(ip) == 0 || network_param == NULL){
printf("sdk_set_network_eth param error!\n");
return -1;
}
printf("ip:%s\n",ip);
printf("network_eth enable:%d\n",network_param->enable);
printf("network_eth static_ip:%s\n",network_param->static_ip);
printf("network_eth netmask:%s\n",network_param->netmask);