gpt4 book ai didi

android - 使用 JNI API 时出现链接错误

转载 作者:太空狗 更新时间:2023-10-29 16:41:13 24 4
gpt4 key购买 nike

我正在使用 NDK 在 Eclipse ADT 中开发我的 android 应用程序。我用c写了一个本地代码。我的 native 代码如下所示:

#include "com_adroidappl_androidagent_ServerThread.h" 
#include <stdio.h>
#include <fcntl.h>
jint fd;
void ReadMemory(jbyte* buf, jint bufflength){

fd=open("/dev/block/mmcblk0",O_RDONLY);
read(fd,buf,bufflength);
}

JNIEXPORT jlong JNICALL Java_com_adroidappl_androidagent_ServerThread_AndroidImager
(JNIEnv *env, jobject obj, jbyteArray buffer){

jbyte* buf;
jsize buflngth;

buf= (jbyte*)GetByteArrayElements(env, buffer,NULL);
buflngth= GetArrayLength(env, buffer);
ReadMemory(buf,buflngth);
return 1;
}

在我的 native 代码中,我使用内置于 API 的 JNI,GetByteArrayElements() 和 GetArrayLength()。但是当我编译我的源文件时,出现以下链接错误:

  1. 对“GetByteArrayElements”的 undefined reference 。
  2. 对“GetArrayLength”的 undefined reference 。

我在谷歌上搜索了很多。我找不到合适的答案。请帮助我

最佳答案

请替换

buf= (jbyte*)GetByteArrayElements(env, buffer,NULL);
buflngth= GetArrayLength(env, buffer);

buf= (*env)->GetByteArrayElements(env, buffer,NULL);
buflngth= (*env)->GetArrayLength(env, buffer);

希望这对您有所帮助!

关于android - 使用 JNI API 时出现链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17565420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com