我有一个共享库libfoo.so,并需要在我的Android应用程序中使用它。
我的第一次尝试是在Android.mk中编写以下内容:
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.cpp
LOCAL_LDLIBS := -L$(PATH_TO_FOO) -lfoo
include $(BUILD_SHARED_LIBRARY)
在我的活动中,我有:
statis
{
System.loadLibrary("foo");
}
这个构建是正确的,但我注意到创建的apk不包含libfoo.so(并且我看到它没有复制到libs / armeabi中)。我猜这就是当我执行我的应用程序时遇到UnsatisfiedLinkError的原因。
我在其他帖子中看到需要添加$(PREBUILD_SHARED_LIBRARY),所以我在我的Android.mk中添加了以下内容:
include $(CLEAR_VARS)
LOCAL_MODULE:= foo
LOCAL_SRC_FILES := $(FOO_PATH)/libfoo.so
include $(PREBUILD_SHARED_LIBRARY)
但是现在我遇到了构建错误:
foo: LOCAL_SRC_FILES points to a missing file.
我相信路径是正确的。请注意,libfoo.so最初在末尾有版本号,但由于ndk-build抱怨,我不得不将其删除(仅保留.so)。
我做错了什么?