24

ndk-buildAndroid アプリケーションで読み込んで使用できるネイティブ ライブラリを生成しました。ただし、アプリのこの部分に対していくつかのテストを作成したいと考えています。

テストでネイティブ関数を呼び出すと、次の例外メッセージが表示されます。

java.lang.UnsatisfiedLinkError: no process in java.library.path

...processインポートするネイティブ ライブラリの場所はlibprocess.so.

私はテストにRoboelectricを使用しておりRobolectricTestRunner、違いがある場合は、この特定のものを で実行しています。

テスト プロジェクトでネイティブ ライブラリを「参照」するにはどうすればよいですか?


編集: 次のようにアプリにライブラリをロードしています:

static {
    System.loadLibrary("process");
}
public static native int[] process(double[][] data);

呼び出しProcess.process(array)はアプリで正常に機能します (ライブラリが読み込まれます) が、上記の例外を使用してテストから実行すると失敗します。


編集 2:-Djava.library.path="<the directory of libprocess.so>" VM 引数として 設定した場合:

System.out.println(System.getProperty("java.library.path"));

設定したパスは表示されますが、それでも同じ例外が発生します。ディレクトリを次のように設定しています:

<project-name>/libs/x86

...しかし、絶対パスとして。

4

3 に答える 3