私は現在、独自の書かれたネイティブコードを使用するJavaライブラリ(バインディング)に取り組んでいます。このネイティブコードは、複数のアーキテクチャ(arm-v7、i686、x86-64など)用に.so
ファイルとしてコンパイルされます。.soファイルをjarファイルにバンドルするにはどうしたらいいですか?
私は、jniLibs
というフォルダを作成し、適切な.so
ファイルを含む各アーキテクチャのサブフォルダを作成する必要があります。その後、Android.mk
ファイルとSystem.loadLibrary
と私のコードにこれらのファイルを含めることができます。
しかし、これらのファイルを通常のJavaプロジェクト/ライブラリに含めるには手がかりがありません。 System.loadLibrary
は、通常のファイル(および必ずしもプロジェクトファイルではない)を見るためにのみ機能します。
あなたの単一のjarは、Androidと通常のデスクトップ/サーバーJava環境の両方で「クロスデプロイ」することを意図していますか?それは野心的な響きです。 – unwind
@Max:これをチェックしてください:http://blog.guillaumeagis.eu/setup-andengine-with-android-studio/ – AndiGeeky
これは、Javaの「一度コンパイルして、どこでも動く」アイデアと幾分矛盾します。とにかく、これはCとは関係ありません。共有ライブラリはC固有のものではありません。 – Olaf