今天在android源码环境下编出来了一个.so包,直接放到lib文件夹下面的armeabi下面,在java层调用,结果一直报library=null的错误。后来将so包名前面加了lib后重新运行,一切OK.原来通过JNI的方式调so时so包名前面必须要加lib,否则找不到。android源码环境下编译so包,编出来的.so的包前面不会自动给添加lib,NDK编译会自动给添加lib,即使Android.mk文件里面LOCAL_MODULE :=名字前面没有lib,NDK也会自动给你添加lib. 所以NDK编译时Android.mk文件编译出来的so包名字可以加lib也可不加.(注意划线部分说法错误,ndk-build时也不一定会在生成的so包前面添加lib)在源码环境下编译用于JNI一定要加lib。
PS:可以没有jni文件夹,直接使用so包在java层调用。
谨此铭记!!!!!!!!!!!!!!!!!!!!