2010-10-25 101 views
2

我正嘗試將數據從筆記本電腦流到android 手機中的本地代碼。 我能夠與筆記本電腦配對,併爲找個時間數據,但本地 代碼崩潰,並顯示以下消息後:通過RFCOMM從個人電腦到Android的藍牙傳輸

「未能增加JNI固定數組引用表」。

代碼片斷:
//藍牙Java代碼讀處理程序
情況MESSAGE_READ:
字節[]的ReadBuf =(字節[])msg.obj;
//將緩衝區中的數據發送到本地代碼 sendData(readBuf,msg.arg1);
................................................ ........................

// C代碼:
... sendData(JNIEnv * env,jclass cl,jbyteArray arr ,jint大小)
{
.....
jbyte 緩衝液=(jbyte)env-> GetByteArrayElements(ARR,& isCopy);
.... //將緩衝區複製到局部變量。
if(isCopy == JNI_TRUE){
env-> ReleaseByteArrayElements(arr,buffer,JNI_ABORT);

}

什麼可能是錯的? 我已經在代碼中的其他地方使用Java和C 之間的數組傳輸使用類似的代碼,並且工作正常。

回答

0

此問題已得到解決。 其實,我所指的「其他」部分存在問題。

而不是GetByteArrayElements(),使用GetByteArrayRegion(),所以 沒有固定的問題。