0
RF 카드를 기반으로 프로그램을 개발하기 위해 Google Nexus의 nfc 함수를 사용합니다. 여기에, 나는 문제가 데이터가jni 메소드가 예외 보류 중 getarraylength로 호출되었습니다.
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에 보류 호출 JNI 방법을/UAI/JNI/...; (J [BJI) (주는 GetArrayLength) 보류 예외이다
는또한 I 예외
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
난 내 코드를 변경하고, 무전기는 uaiGenKeyPair 작업에 실패 얻을. 나는 uaiGenKeyPair가 너무 많은 시간이 걸릴 것이라고 생각하지만 isoDEP.timeout (5000)을 설정 한 후에도 여전히 송수신에 실패했다. –
그래서 'android.nfc.tech.IsoDep.transceive'에 문제가있다. 예외가있다. 당신의 헬퍼 함수에서'GetArrayLength'가 아닙니다. 다른 사람이 당신을 도울 수 있도록 적절한 설명과 함께 새로운 질문을 게시하십시오. 당신이 이미 가지고있는 해답 중 일부를 받아들이면 누군가가 실제로 다음 질문에 답하는 것에 관심이 있습니다. –