Jni调用方法产生java.lang.UnsatisfiedLinkError错误
错误产生在我把方法从c语言转为c++语言后产生的,后来检查到这种错误是因为mk文件出错,加载c文件和加载c++的文件所用的代码不一样,下面请看:
错误为:
Android.mk文件
c++的调用方法为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestNdk
LOCAL_CPP_EXTENSION :=com_ndk_test_JniClient.cpp
include $(BUILD_SHARED_LIBRARY)
c中的调用方法:
LOCAL_SRC_FILES := com_ndk_test_JniClient.c
--------------------------
后来又一个网友给我一个可以使用变量的方法,一直成功运行,参考如下:
//上午网友给我的一个正确的文件,成功运行。
c++正确的mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestSm3
LS_CPP=$(subst $(1)/,,$(wildcard $(1)/*.cpp))
LOCAL_SRC_FILES := $(call LS_CPP,$(LOCAL_PATH))
include $(BUILD_SHARED_LIBRARY)
如果,这篇博客帮您解决了问题,不妨点击一下右下角的【推荐】。如果,您希望更容易地发现我的新博客,不妨点击一下【加关注】。因为,我的热情需要您的肯定和支持!感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends! |