[英]JNI on Android, how to pass int from c to java
我有一个C函数,我只返回一个整数,如下所示:
JNIEXPORT jint JNICALL Java_org_project_ScreenPosition(JNIEnv* env, jobject thiz){
int i=1;
return i;
}
我以Android上的Activity onCreateContextMenu的方式调用此函数,如下所示:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
menu.setHeaderTitle("TryMenu");
int a=ScreenPosition();
return;
}
但是所有崩溃
假设您将C代码编译到名为libmyCode。的库中,则需要使用此Java调用将共享库代码显式加载到进程中:
System.loadLibrary(“ myCode”);
在调用任何JNI方法之前。
如果更改了API(Java中使用“ native”关键字的方法声明),则绝对需要再次运行javah实用程序。
如果使用Eclipse,则在运行javah和ndk-build之后,最好按F5键刷新Eclipse对文件系统的视图。 然后,Eclipse将检测到新建的库代码。
如果仍然无法正常工作,请共享logcat的输出,包括从将应用程序安装到手机那一刻起出现的所有输出,堆栈转储以及任何错误或警告消息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.