2
Я разрабатываю приложение для Android в Ecclipse ADT с помощью NDK. Я написал собственный код в c. Мой родной код выглядит следующим образом:Ошибка связи при использовании API JNI
#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;
}
В моем родном коде я использую JNI встроенный в API-интерфейсы, GetByteArrayElements() & GetArrayLength(). Но когда я компилирую свой исходный файл, я получаю следующую ошибку привязки:
- Неопределенная ссылка на «GetByteArrayElements».
- Неопределенная ссылка на 'GetArrayLength'.
У меня много googled. Я не мог найти правильный ответ. Пожалуйста, помогите мне
Да. Теперь он отлично работает. Спасибо. Ройстон Пинто. Большое спасибо – user2269141
. Оригинальный синтаксис был хорош для C++, но ваш код находится в C –
Не забудьте принять ответ, если он сработает для вас :) приветствую! –