1

我查看了 SO 和 google 上的每个问题,但仍然没有运气。

我已经获得了一个预构建的静态库 libdroid.a,我需要在我的应用程序中使用它。

我试过把它放在带有 Android.mk 的 jni 文件夹中

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libdroid
LOCAL_LDLIBS := libdroid.a
include $(PREBUILT_STATIC_LIBRARY)

并在java中调用它

static {
        System.loadLibrary("droid");
    }

     public static native int droidCall(int num1, int num2);

但是当我运行应用程序时,我得到

java.lang.UnsatisfiedLinkError: Couldn't load droid: findLibrary returned null

我在想这是因为它不应该放在 JNI 文件夹中吗?但我也在 obj 和 libs 文件夹中尝试过。

4

1 回答 1

2

您需要创建自己的共享库 ( *.so),它将从该预构建的静态库中调用您需要的函数。然后你加载这个.soSystem.loadLibrary并使用它的原生函数

于 2012-07-17T19:25:01.193 回答