use*_*141 2 java-native-interface android eclipse-adt android-ndk-r7
我正在使用NDK在Ecclipse ADT中开发我的android应用程序.我在c中编写了一个本机代码.我的本机代码如下所示:
#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;
}
Run Code Online (Sandbox Code Playgroud)
在我的本机代码中,我使用的是内置的JNI API,GetByteArrayElements()和GetArrayLength().但是当我编译我的源文件时,我得到以下链接错误:
我google了很多.我找不到合适的答案.请帮我
请更换
buf= (jbyte*)GetByteArrayElements(env, buffer,NULL);
buflngth= GetArrayLength(env, buffer);
Run Code Online (Sandbox Code Playgroud)
同
buf= (*env)->GetByteArrayElements(env, buffer,NULL);
buflngth= (*env)->GetArrayLength(env, buffer);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |