android jni調用opencv庫失敗 could not load library libopencv_java3.so【已解決】

想用android studio 通過JNI調用opencv庫,但是一直報錯could not load library libopencv_java3.so,編譯都沒有問題,但是一運行就報,簡直氣死。

at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libopencv_java3.so" needed by "libnative-lib.so"; caused by load_library(linker.cpp:745): library "libopencv_java3.so" not found
at java.lang.Runtime.loadLibrary(Runtime.java:371)
at java.lang.System.loadLibrary(System.java:535)
at com.hello.MainActivity.<clinit>(MainActivity.java:15)

先說下我的設備調試版本:

android studio:3.2

運行設備:android4.2.2

opencvSDK:3.4.3

在網上找資料找了很多天,用了很多方法,一直以爲是網上說的調用opencv庫的apk需要先安裝SDK/OpenCV-android-sdk/apk/OpenCV_xxx_Manager.apk,後來發現不對,如果真是這個問題,最起碼要提示mananger.apk安裝問題呀。

後來發現同樣的 代碼在我的小米8(andorid8.1)運行竟然正常,說明我代碼沒有問題啊。

後面不知道從哪看了一個庫的先後問題,於是抱着試一試的態度將opencv_java3.so 放在了native-lib.so前面,竟然好了!

一萬個曹尼瑪 飛過。。。

MainActivity.java

    static {
        System.loadLibrary("opencv_java3");
        System.loadLibrary("native-lib");
    }

總結,有時候不是網上的資料不對,而是你的平臺太Low。換個平臺試一試,可能真的會柳暗花明。。。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章