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后沒有
uj5u.com熱心網友回復:
先呼叫這個jfieldID rdata = (*env)->GetFieldID(env,objectClass,"recdata","[B");后呼叫這個 jfieldID b_id = (*env)->GetFieldID(env,objectClass,"bcan_id","[B");
看看什么效果 報的錯誤是否一樣
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/17168.html
標籤:Android
