我查看了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文件夹。
答案 0 :(得分:2)
您需要创建自己的共享库(*.so
),该库将从预构建的静态库中调用您需要的函数。然后使用.so
加载此System.loadLibrary
库并使用其原生函数