【发布时间】:2011-12-17 03:39:39
【问题描述】:
我有一个共享库 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)。
我做错了什么?
【问题讨论】:
标签: android java-native-interface shared-libraries android-ndk