【发布时间】:2014-01-15 08:08:28
【问题描述】:
我有使用 c 库创建的 .so 文件。现在我想在另一个项目中使用 .so 文件来调用这些函数。我不知道如何使用该库。如何调用该库中的任何函数?我试过但发现错误,因为找不到本地方法。我是 android 中 Ndk 的初学者。对此有任何帮助..??
我提到了许多链接,这些链接没有解决我的问题 Native method not found,
java.lang.UnsatisfiedLinkError: Native method not found,
我面临与此链接相同的问题,但没有得到答复。链接是 Need NDK Help: How to call a C++ function for shared library from another project that uses C++
我的 Android.mk 文件如下,我从中创建了 .so 文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ShairportSample
LOCAL_SRC_FILES := ShairportSample.cpp
APP_PLATFORM := android-19
include $(BUILD_SHARED_LIBRARY)
【问题讨论】:
-
您是否将该库作为 LOCAL_SHARED_LIBRARIES 添加到您的 Android.mk 中的主模块中?在这里发布你的 Android.mk 真的很有帮助,因为没有关于你如何处理事情的信息。
-
@user2359247 项目的 mk 文件,我从中创建了 .so 文件 ??..因为在另一个我没有那个文件之前。
-
正如我猜想的那样,您不会将该共享库添加到您的模块中。答案应该可以解决您的问题。
-
@user2359247 我是否还需要 Android Project 中的 .mk 文件。就我而言,调用项目不是任何 Ndk 项目。他们是否也需要将其设为 Native 项目。?
-
@Manmohan,我猜你有项目 A(JNI 项目)和你通过构建 A 生成的 A.SO。而且,上面的 .mk 文件属于 A 项目。现在,您想要项目 B,并且您想在项目 B 中使用 A.SO。这是场景吗? B项目的本质是什么?
标签: android android-ndk