用asset_manager使用NDK构建静态库r10e

问题描述:

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

的事情是我不能包括libandroid因为生成静态库时,我不能使用LOCAL_LDLIBS += -landroidlocal_ldlibs总是被忽略的静态库)

那么如何才能建立我的静态库,而无需使用local_ldlibs

当你建立一个静态库时,你不需要满足外部引用,但是如果有人使用你的库,他们必须链接libandroid.so。你可以把它放在你的库的文档中。

如果您提供了一个Android.mk与它,您可以设置LOCAL_EXPORT_LDLIBS = -landroid。顺便说一句,您还可以将LOCAL_EXPORT_INCLUDES设置为您的库的公共标题目录。

无论如何,NDK 10已经过时。我强烈建议转到当前版本(除非你急需支持android-3)。

+0

很确定我在r13/r14中添加了'LOCAL_EXPORT_LDLIBS'。所以,是的,更新你的NDK。 –

+1

我的问题是我没有指定APP_PLATFORM,所以它默认设置为android-3(也许因为我使用的是NDK 10)。将APP_PLATFORM设置为android-9后,问题就消失了。 –

+0

@DanAlbert:'EXPORT_LDLIBS'出现在r10e中。我没有查看完整的历史记录。 –