GNU Scientific Library(GSL)を利用するAndroidアプリケーションを作成しようとしています。特に、BLASの実装については「libgslcblas.so」に興味があります。私はAndroidNDKを利用して、ライブラリをロードし、適切な関数呼び出しを行うJavaプログラムを作成することにしました。
これがどのように機能するかをテストするために、「libm.so」をロードして任意の関数呼び出しを行う単純なプログラムを作成しようとしました。これは、私が考えることができるように、NDKの些細なユースケースのように見えましたが、次の問題に遭遇しました。
07-05 18:11:07.264: I/System.out(1298): debugger has settled (1464)
07-05 18:11:07.583: D/dalvikvm(1298): No JNI_OnLoad found in /system/lib/libm.so 0x41345988, skipping init
07-05 18:11:07.903: W/dalvikvm(1298): No implementation found for native Lissm/libctest/LibCtest;.sqrt (D)D
私のコードは次のとおりです。
package issm.libctest;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
public class LibCtest extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
setContentView(R.layout.activity_lib_ctest);
double x = sqrt(4);
tv.setText( "Sine of: " + x);
setContentView(tv);
}
public native double sqrt(double x);
static
{
System.load("/system/lib/libm.so");
}
}
私は本当に問題を理解していません。私が言ったように、これは私が考えることができるNDKの最も簡単な使用法です。誰かがこの問題を解決するのを手伝ってもらえますか?
ありがとう!