2017-09-25 11 views
0

C++でAAssetManager#include <android/asset_manager.h>)を使用する静的ライブラリを構築しています。その後、javaのライブラリを使用します。NDKを使用してasset_managerでスタティックライブラリを構築するr10e

事は、静的ライブラリを構築するとき、私はLOCAL_LDLIBS += -landroidを使用することはできませんので、私はlibandroidを含めることはできませんです。

それでは、どのようlocal_ldlibsを使用せずに、私の静的ライブラリを構築することができます(local_ldlibsは常に静的ライブラリでは無視されますか)?

答えて

1

静的ライブラリを作成するときに外部参照を満たす必要はありませんが、ライブラリを使用する人は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:r10eに 'EXPORT_LDLIBS'が表示されます。私は完全な歴史をチェックしなかった。 –

関連する問題