使用 NDK r10e 使用 asset_manager 构建静态库

Build static library with asset_manager using NDK r10e

我正在构建一个在 C++ 中使用 AAssetManager (#include <android/asset_manager.h>) 的静态库,然后我将使用 java.

中的库

问题是我不能包含 libandroid 因为我在构建静态库时不能使用 LOCAL_LDLIBS += -landroid。(静态库总是忽略 local_ldlibs

那么如何在不使用 local_ldlibs 的情况下构建我的静态库?

当你构建静态库时,你不需要满足外部引用,但如果有人使用你的库,他们必须link libandroid.so。您可以将其放入图书馆的文档中。

如果你提供Android.mk,你可以设置LOCAL_EXPORT_LDLIBS = -landroid。顺便说一句,您还可以将 LOCAL_EXPORT_INCLUDES 设置为带有 public headers 的目录。

无论如何,NDK 10 已经过时了。我强烈建议移动到当前版本(除非你迫切需要对 android-3 的支持)。