今天在编译一个需要用到Jni的Android程序的时候,遇到了上面的报错。于是在网上百度了一下,发现网上给出的例子Log在这句话后面都还会把出现错误的原因也打印出来,而笔者的却没有。这让笔者很郁闷。笔者也不知道到底是什么造成的。 最后发现原因就是缺失了Jni编译出来的库文件。笔者的环境中直接编译Jni源码,会提示“在当前路径无法编译”等字样,所以笔者都是将Jni部分的源码放在ndk指定的路径中编译出对应的so文件(编译的时候需要用管理员权限),然后将编译出来的so文件移到libs/armeabi目录下。但是此时,编译程序发现,仍然会报刚才的错。这是因为so文件放的位置不对,应该放在libs/armeabi-v7a中。libs/armeabi目录是过去ARM芯片对应的库文件位置,现在的对应库文件位置都在libs/armeabi-v7a中。将so文件拷贝到libs/armeabi-v7a中,问题即可得到解决。 |
|