AndroidDev 板


LINE

這是一個我用Android NDK 調用 JNI 我自己寫的C函式庫的code C的code普通執行的時候確實 能夠把我要得到的RS232數據傳入然後做檢測之後轉為十進位的數值 但是在這裡面就無法了 當我把Android的char陣列傳到JNI,然後做了事情回傳之後 我去檢查那個buffer 他就給我一個亂碼 我試過在Jni的.c檔裡面 把char類型的buffer陣列='Z' ,回傳之後的確 檢測是Z,但是只要是想要把Rs232數據memcpy進來,數據就都會是亂碼, 應該說在Android Java裡面檢視Logcat都是亂碼,查了很多資料都沒有解決辦法。 是網路上所說的char大小Java和C不同嗎? 有請高手大大解釋一下 另外從RS232裡面傳出來的值是16進位的數值 http://pastebin.com/mrB0bsSd這個是Code所在的網站 下面也是 =======================Android Java Code============================= 這裡是片段 public native int OpenPort(int portnum,int brates); public native int ClosePort(int portnum); public native int READ(char[] databuffer); public char[] buffer=new char[40]; int i; for(i=0;i<40;i++) buffer[i]='s'; //初始化 OpenPort(16,9600); 自己寫的開Port while (i<1000) { READ(buffer); i++; } =====================以下為JNI.c code=============================== JNIEXPORT jint JNICALL Java_com_example_ndk_Vehicles_READ(JNIEnv *env, jclass cls,jcharArray databuffer) { char tmp[40]; jchar *buffer=(*env)->GetCharArrayElements(env,databuffer,0); memset(tmp,0,sizeof(tmp)); PollComport(16,tmp,40); memcpy(buffer,tmp,40); (*env)->ReleaseCharArrayElements(env, databuffer, buffer, 0); return 0; } ========================================================================== 有請大大幫忙看一下 折騰了好幾天 很累=_= --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.112.16
1F:→ Killercat:雖然說這是不隊的 不過把ReleaseCharArrayElements mark 08/21 19:07
2F:→ Killercat:掉 跟 調整最後一個參數0->JNI_COMMIT看有沒有至少正常? 08/21 19:09
3F:→ Killercat:我是覺得看起來要(env,databuffer,buffer,JNI_COMMIT) 08/21 19:10
4F:推 Killercat:阿靠 不要用CharArray傳這種東西 =___= 我居然沒看到 08/21 19:23
5F:→ Killercat:因為char在C/Java解釋是完全不同的兩個東西 不能這樣做 08/21 19:24
6F:→ Killercat:比方說一個中文字(或者utf-8在0x00FF後的字元)在java是 08/21 19:26
7F:→ Killercat:一個char 可是在C裡面是兩個char 08/21 19:26
8F:→ Killercat:自然只要有超過ascii的過jni就會變亂碼了 08/21 19:26
9F:推 qrtt1:我倒是比較好奇為什麼稱為亂碼。單純存數字應該沒問題 08/21 20:13
10F:→ qrtt1:只是印出來沒有意義就是了。 08/21 20:13
11F:→ Killercat:數字沒超過ascii阿 印印看純ascii應該不會有問題 08/21 21:37







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP