繁体   English   中英

Android上的JNI,如何将int从c传递给java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM