jni的c代码GetFieldID失败

飞天舞 2020-07-25 10:21:41
java类如下:
public class canFrame {

public int can_id;
public char can_dlc;
public byte[] bcan_id;
public byte[] recdata;
}

在C代码中调用
jfieldID id = (*env)->GetFieldID(env,objectClass,"can_id","I");//成功
jfieldID leng = (*env)->GetFieldID(env,objectClass,"can_dlc","C");//成功
jfieldID b_id = (*env)->GetFieldID(env,objectClass,"bcan_id","[B");//失败
jfieldID rdata = (*env)->GetFieldID(env,objectClass,"recdata","[B");//成功
错误提示:
java.lang.NoSuchFieldError: no field with name='bcan_id' signature='[B' in class Lforlinx/hardware/canFrame;

打开canFrame.class文件查看有看到bcan_id后有[B关键字,但recdata后没有
...全文
9307 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
usecf 2020-07-28
  • 打赏
  • 举报
回复
先调用这个jfieldID rdata = (*env)->GetFieldID(env,objectClass,"recdata","[B"); 后调用这个 jfieldID b_id = (*env)->GetFieldID(env,objectClass,"bcan_id","[B"); 看看什么效果 报的错误是否一样

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧