使用预构建的静态库

时间:2012-07-17 19:03:00

标签: android android-ndk

我查看了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文件夹。

1 个答案:

答案 0 :(得分:2)

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