执行到GetDeviceInfo()的时候,程序跳转到Vector.class的
public synchronized int size() {
return elementCount;
}
里面,是什么问题呢?参数的数量不对?还是参数的类型不对?
public synchronized int size() {
return elementCount;
}
里面,是什么问题呢?参数的数量不对?还是参数的类型不对?
如果出错了。把错误代码发上来。
//javaapi是GetDeviceInfo函数所在的类,int sessionhandle
javaapi中:
//获取设备信息--返回一个设备信息类DEVICEINFO
public native DEVICEINFO GetDeviceInfo(int sessionhandle)//设备信息类
class DEVICEINFO
{
public String IssuerName;
public String DeviceName;
public String DeviceSerial;
public int DeviceVersion;
public int StandardVersion;
public int AsymAlgAbility[]=new int[2];
public int SymAlgAbility;
public int HashAlgAbility;
public int BufferSize;
}
运行到这句话的时候,在DEBUG模式下,Step over ,直接跳转到ClassNoFoundException错误里面,用Step into再Step over就先跳转到Vector.class里面,也就是开始我说的函数,之后再Step over就到了ClassNoFoundException错误!
你确信你的C程序里返回了DEVICEINFO对象,你的C程序要通过反射的方式,调用jni的方法来创建这个对象的,估计你的C程序有问题。
抛出异常的时候,会走到异常堆栈,获取堆栈层次的信息,估计异常堆栈是用Vector实现的,所以调用Vector的size方法了