NDK-Swig-Android Studio-未找到任何实现错误
我创建了一个使用NDK的Android应用程序。 在JNI目录下,我有一组C++文件和一个C目录下的.c文件。我使用SIP工具在C++代码上创建JNI接口。到现在为止,一直都还不错。 应用程序是编译文件,我能够运行应用程序并从C++类调用API。 现在我想使用.c和.h文件创建一个静态库,并将其包含在我的Android.mk中,而不是将所有文件编译成一个.so文件。 我创建了一个新的Android.mk文件和include.c,并创建了一个静态库。 当我编译代码时,我可以看到.a文件被创建 我在jni目录下的Android.mk文件中包括了以下几行内容NDK-Swig-Android Studio-未找到任何实现错误,android,android-ndk,Android,Android Ndk,我创建了一个使用NDK的Android应用程序。 在JNI目录下,我有一组C++文件和一个C目录下的.c文件。我使用SIP工具在C++代码上创建JNI接口。到现在为止,一直都还不错。 应用程序是编译文件,我能够运行应用程序并从C++类调用API。 现在我想使用.c和.h文件创建一个静态库,并将其包含在我的Android.mk中,而不是将所有文件编译成一个.so文件。 我创建了一个新的Android.mk文件和include.c,并创建了一个静态库。 当我编译代码时,我可以看到.a文件被创建 我在
include $(call all-subdir-makefiles)
。。。从本地_SRC_FILES变量中删除.c文件
LOCAL_STATIC_LIBRARIES += libhello
这一变化之后,,
我可以编译代码并启动应用程序。但是,当我从C++类调用早先工作过的函数时,现在应用程序会意外地崩溃。
java.lang.UnsatifiedLinkError:未找到任何实现
我验证了.so文件是否在apk中可用,这似乎不是问题所在。
已检查.so文件是否正确加载。
而不是指定include$call all subdir makefile
我还尝试了直接包含C/Android.mk
我试着找西米
应用程序仍然会失败,出现相同的异常。
如果有人能帮我解决这个问题,我将不胜感激
谢谢,
阿贾拉
我正在为该项目提供Android.mk文件内容
/*********************************************/
LOCAL_PATH := $(call my-dir)
MY_PATH := $(LOCAL_PATH)
include $(call all-subdir-makefiles)
include $(CLEAR_VARS)
LOCAL_MODULE := SWIGCPlusTester
LOCAL_CPP_EXTENSION := .cxx .cpp
MY_LOCAL_SRC_FILES :=
$(wildcard $(MY_PATH)/*.cpp)
MY_LOCAL_SRC_FILES := \
$(wildcard $(MY_PATH)/*.cxx)
LOCAL_SRC_FILES := \
$(subst jni/, , $(MY_LOCAL_SRC_FILES))
LOCAL_LDLIBS :=-llog
LOCAL_STATIC_LIBRARIES := libhello
include $(BUILD_SHARED_LIBRARY)
/*********************************************/
我还附加了C目录中的Android.mk文件内容
/*********************************************/
LOCAL_PATH := $(call my-dir)
LOCAL_PATH_INCLUDE := $(LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_STATIC_LIBRARY)
/*********************************************/
我根据示例创建了mk文件
希望这些信息有助于确定问题。我提供了该项目的Android.mk文件联系人