天天看點

記錄一次調試時的異常問題:UnsatisfiedLinkError: Native method not found

jni程式啟動時報錯:

在android jni調試的過程中出現了一個錯誤

E/AndroidRuntime(31969): java.lang.UnsatisfiedLinkError: Native method not found:

先檢查jni中的函數的名字是否正确,一個一個字元對比會發現完全一樣。

通過nm檢視so的符号

 D:\Android\Sdk\ndk\21.0.6113669\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-nm.exe -D .\libadasManager.so

發現

native函數确實不在動态庫中

檢視Android.mk

但是檔案卻是包含進去了

後來猜測是否是因為jni調用的檔案字尾是.h導緻的

将jni對應的檔案名改為.cpp

再次編譯,檢視so,函數名在裡面了

推進去再試下,異常沒有再出現。