まずはやりたいことを伝えたい。Android NDK で共有ライブラリを作成した通常の C コードを含む .h ファイルと .c ファイルがあります。これで、libtry.so という .so ファイルができました。さらに、Android Eclipse プロジェクトでネイティブ コードを使用したいと考えています。そこで、クラス「カウンター」とコンテンツを含む.javaファイルを作成しました
public native static int Number(int n);
と
static
{
System.loadLibrary("test");
}
次に、javah ツールを使用して、.java ファイルから C ヘッダー ファイルを作成します。
その後、ネイティブ コードを実装する C-Headerfile 用の C-sourcefile を作成します。
次にLOCAL_MODULE := test
、ファイル名がlibtest.so
. しかし要点は、最初に作成した共有ライブラリ libtry.so をこの共有ライブラリにリンクしたいということです。
そのため、libtest.so の Android.mk ファイルにLOCAL_LDLIBS := -L/root/Android/Samples/Test/libs/ -ltry
.
実際には、この Android.mk-file を ndk-build でコンパイルできるため、これは機能します。
しかし、私のEclipseプロジェクトでは、ライブラリlibtest.soを使用したい場合、機能しません。つまり、ライブラリ libtest.so がロードされている Class "Counter" のオブジェクトを作成すると、
を取得しerror: "Cannot load library: link_image[1966]: 1752 could not load needed library 'libtry.so' for 'libtest.so'"
ます。
私は何を間違っていますか?前もって感謝します。