今天在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。java
PS:能夠沒有jni文件夾,直接使用so包在java層調用。android
謹此銘記!!!!!!!!!!!!!!!!!!!!ui