将库添加到NDK项目 - eclipse

时间:2016-01-30 10:18:34

标签: android android-ndk box2d liquidfun

Eclipse NDK,NativeActivity项目。 我想尝试将Liquidfun(Box2D)库添加到我现有的项目中。不幸的是,互联网上没有人解释如何准确地做。 在使用ndk(遵循此https://google.github.io/liquidfun/Building/html/md__building_android.html)构建库之后,我陷入困境,并运行示例项目。我完全不知道如何在我自己的项目中使用它。 我的 Android.mk ,我已经在使用sfml了。

  LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := sfml-example


PROJECT_FILES := $(wildcard $(LOCAL_PATH)/CPP/*.cpp)
PROJECT_FILES := $(PROJECT_FILES:$(LOCAL_PATH)/%=%)

LOCAL_SRC_FILES := main.cpp 

LOCAL_SRC_FILES += $(PROJECT_FILES)

FILE_LIST := $(wildcard $(LOCAL_PATH)*.cpp)

LOCAL_SHARED_LIBRARIES := sfml-system
LOCAL_SHARED_LIBRARIES += sfml-window
LOCAL_SHARED_LIBRARIES += sfml-graphics
LOCAL_SHARED_LIBRARIES += sfml-audio
LOCAL_SHARED_LIBRARIES += sfml-network
LOCAL_WHOLE_STATIC_LIBRARIES := sfml-main

include $(BUILD_SHARED_LIBRARY)

$(call import-module,sfml)

提前致谢。

1 个答案:

答案 0 :(得分:0)

我在自己的项目中有一些预建库,我把它们包括在内:

@Override
public int getCount () {
     return values.size();    
}

这是针对预构建的静态库(扩展名为.a)。如果您想要包含共享,只需将其更改为include $(CLEAR_VARS) LOCAL_MODULE := libcurl LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libcurl.a LOCAL_STATIC_LIBRARIES := libcares libssl LOCAL_EXPORT_LDLIBS := -lz LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/curl/include include $(PREBUILT_STATIC_LIBRARY) 即可。 要包含的文件位于BUILD_SHARED_LIBRARY文件夹(包含其他库)中,库的头文件放在MyProject/jni/lib/{arch}内(就像它在MyProject/jni/curl/include变量中可见)

传递给LOCAL_EXPORT_C_INCLUDES的名称必须与在其他库/模块的LOCAL_STATIC_LIBRARIES中声明的名称相同。

您可能需要的所有内容都可以在NDK文件夹中的NDK文档中找到。对于预构建的库,有单独的部分。