常见错误收集和解决方案:
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]是输出的值。