Opencv for Android实例讲解之三

来源:互联网 发布:会计核算软件包括哪些 编辑:程序博客网 时间:2024/05/01 20:02

常见错误收集和解决方案:

1、

运行之后又发生这样的错误:

05-28 15:17:48.662: E/AndroidRuntime(29430): java.lang.UnsatisfiedLinkError: track


后来百度知道结果:

跟随网上的一篇帖子学习Windows操作系统Android开发环境搭建与.SO文件的生成。。。

PS:大概是利用jni+ndk生成.so

一路跟下来,生成了.so文件,在源程序中调用了.so接口,运行,但是出现了 

03-12 06:52:18.175: E/AndroidRuntime(279): java.lang.UnsatisfiedLinkError: intFromJni

百度了很久,也仔细检查了接口名字,还是不行。。

后来暴力了一下,直接查询.so的符号表 ,命令:readelf -s **.so,发现我的接口前边多了_Z47这个前缀,,,

之后百度了一下这个前缀,貌似C++文件的就是这样。这就是导致android上边链接错误的原因,

只要在C++文件的函数前边加上 extern "C"即可。。。

extern "C" jint Java_com_example_myfirstjni_FirstJni_intFromJni

  (JNIEnv * env, jclass jcl);

 之后运行成功! 


2、

关于ndk输出androidLogcat的设置:

a、#include<android/log.h>

b、在Android.mk文件中,添加LOCAL_LDLIBS +=  -llog

c、__android_log_print(ANDROID_LOG_INFO,"scy","获取的位姿矩阵 %f", &glMatrix.data[0]);

进行输出,其中scy是关键字,&glMatrix.data[0]是输出的值。

0 0