小编ASK*_*SKA的帖子

Android Java JNI和C Char数组无法识别该值

我试图将char数组从java传递给c.我用Google搜索实现它的方式.但是当我试图访问数组的值时,值不正确.

事实上,我试图给阵列一个角色.就像buffer[i]='z',并且结果在android中是正确的.

顺便说一句,我想要的值是rs232发送的值.来自rs232的值还可以.

有人告诉我使用bytearray.会有用吗?我害怕rs232的值无法存储到bytearray中....

Java

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';  //initialization

OpenPort(16,9600); // A function to open the rs232 port

while (i<1000)
{
    READ(buffer);
    i++;
}
Run Code Online (Sandbox Code Playgroud)

JNI.c

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); //will the problem here ? This function need a unsigned char[]
                            //,but in the c program I …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface android

7
推荐指数
1
解决办法
1011
查看次数

标签 统计

android ×1

java ×1

java-native-interface ×1