I am developing my android application in Ecclipse ADT using NDK. I have written a native code in c. My native code is look like this :
#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;
}
In my native code i am using JNI built in APIs, GetByteArrayElements() & GetArrayLength(). But when i am compiling my source file i am getting following linking error:
- undefined reference to 'GetByteArrayElements'.
- undefined reference to 'GetArrayLength'.
I have googled a lot. by i couldn't find proper answer. Please help me
Kindly replace
with
Hope this helps!