Java とネイティブの両方のコンポーネントを持つ Android 用のライブラリを開発しています。Native ライブラリは GNU STL に依存しています。に対してリンクしgnustl_staticていましたが、いくつかの奇妙な問題に遭遇し、リンクすることで解決されましたgnustl_shared。(たとえば、質問Filesystem and locale )。とりあえず、 に落ち着きましたgnustl_shared。
問題はここにあります。私のライブラリの消費者は、Native .so にリンクして独自のコードを追加することが期待されています。すべての C ランタイムが一致する必要があることを読んで理解しました。
- 私のクライアントに使用を要求する
gnustl_sharedことはうまくいかないようです (外交と統合の容易さに関する限り) - を使用してビルドすると
gnustl_shared、生成された JAR ファイルに が含まlibgnustl_shared.soれるため、このライブラリにも依存する APK のビルドで問題が発生します。-- JAR ファイルに含めることはできないのでしょうか。 - 反対に構築した場合
gnustl_static、これらの問題をすべて回避できますか? - API に STL オブジェクト (主に
std::stringおよびstd::vector) への参照が含まれている場合、クライアントが GNU STL を使用していないと問題に直面しますか?
ありがとう