java.lang.UnsatisfiedLinkError: Native method not found 三種可能解決方案

傲慢的上校發表於2013-09-02

        so檔案編譯生成後,執行時,有時候會遇到java.lang.UnsatisfiedLinkError: Native method not found問題,有可能是以下三種因素:

一、Jni方法頭部大小寫問題     

在C++中,方法名:Java_com_XXX,而不是java_com_XXX。建議直接從生成的.h標頭檔案直接複製方法名到C或者C++檔案中。

二、C++檔案問題

        如果是C++檔案(.cpp或者.cc),要使用extern "C" {   } 把本地方法括進去。

三、往Jni方法中傳值問題

         如,呼叫native方法sendSomeThing(Object object),如果傳入的object為null,有可能會報上面錯誤。


相關文章