GSL (GNU Scientific Library)을 사용하는 Android 애플리케이션을 작성하려고합니다. 특히 BLAS 구현을 위해 'libgslcblas.so'에 관심이 있습니다. Android NDK를 활용하고 라이브러리를로드하고 적절한 함수 호출을 수행하는 Java 프로그램을 작성하기로 결정했습니다.Android NDK 기본 함수 호출 문제
어떻게 작동하는지 테스트하려면 '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의 가장 간단한 사용법입니다. 다른 사람이이 문제를 해결하도록 도와 줄 수 있습니까?
감사합니다.
[JNI] (http://developer.android.com/guide/practices/jni.html)를 사용하여 NDK로 다시 컴파일 한 원시 함수를 호출 할 수 있습니다. –
@KeithFlower 해당 라이브러리에 대한 참조가 없습니다 ... – t0mm13b
예. GSL에서 함수를 호출한다고 생각했던 글로벌 목표에 대해 이야기하고 있습니다. libm.so를 사용한 테스트 (작동하지 않을 것입니다)가 아닙니다. –