首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jni方法调用异常等待getarraylength

jni方法调用异常等待getarraylength
EN

Stack Overflow用户
提问于 2012-11-23 02:39:19
回答 1查看 3.3K关注 0票数 0

我使用google的nfc功能来开发基于RF卡的程序。这是我的方法,我认为问题是数据对象

代码语言:javascript
复制
unsigned char *CNFCFunList::jbyteArray2Byte(jbyteArray data, int *outLen)
{
    LOGI("jbyteArray2Byte begin");
    if (data == NULL)
    {
        LOGI("data is NULL");
        return 0;
    }

jsize  size = m_pJNIEnv->GetArrayLength(data);
LOGI("GetArrayLength begin %d",size);
//LOGI("GetByteArrayElements begin,data length = %d",env->GetArrayLength(data));
jbyte * olddata = (jbyte*)m_pJNIEnv->GetByteArrayElements(data, 0);
jsize  oldsize = m_pJNIEnv->GetArrayLength(data);
unsigned char* bytearr = (unsigned char*)olddata;
*outLen = (int)oldsize;

return bytearr;

}

但我得到了JNI警告:在Lcom/uai/ JNI /.中调用带有异常挂起的jni方法;(J[BJI) (GetArrayLength)待定异常是:

而且我也得到了例外

代码语言:javascript
复制
I/dalvikvm(5836): java.io.IOException: Transceive failed
11-23 10:19:35.269: I/dalvikvm(5836):   at android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:52)
11-23 10:19:35.269: I/dalvikvm(5836):   at android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)
11-23 10:19:35.269: I/dalvikvm(5836):   at android.nfc.tech.IsoDep.transceive(IsoDep.java:172)
11-23 10:19:35.269: I/dalvikvm(5836):   at com.uai.jni.libUai.uaiGenKeyPair(Native Method)
11-23 10:19:35.269: I/dalvikvm(5836):   at 
EN

回答 1

Stack Overflow用户

发布于 2012-11-23 15:44:43

  1. com.uai.jni.libUai.uaiGenKeyPair是一个本地方法,发生java.io.IOException: Transceive failed
  2. 在本机代码中发生异常(通过调用JNI方法,而不是本机函数!)不会像在JVM中那样自动处理(冒泡到最近的尝试/捕捉)。您必须通过测试方法ExceptionOccurred()来观察方法结果和/或手动检查。似乎您在uaiGenKeyPair之后都没有这样做,只是继续执行JNI。
  3. 在所提供的代码中,执行已达到m_pJNIEnv->GetArrayLength(data),JNI机器表示反对,因为只有非常有限的一组JNI方法可以在挂起异常时执行。

您必须清除和/或将异常从JNI层重新抛回Java。我在这里找到了一章关于盛良优秀的JNI在线书中的例外(不能让它点击,所以对象是数字IP):

代码语言:javascript
复制
http://192.9.162.55/docs/books/jni/html/exceptions.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13522472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档