안드로이드에서 영상처리를 하려고 합니다.
 Bitmap 을 불러와서 int [ ] 로 만든다음에 이걸 native code에 전달해서 영상처리를 하려고 하는데요,
 구현 파일을

#include "BitmapNdk.h"
#include <jni.h>

void Java_android_ndk_BitmapTest_BitmapNdk_Binary(JNIEnv *env, jobject thiz, jintArray data)
{
 jint *buf = 0;
 jsize len = (*env)->GetArrayLength(env, data);
 int i;

 buf = (*env)->GetIntArrayElements(env, data, 0);

 for(i=0; i<len; i++){
  if(buf[i] <= 0xFFAAAAAA)
   buf[i] = 0xFF000000;
  else
   buf[i] = 0xFFFFFFFF;
 }
 
 (*env)->ReleaseIntArrayElements(env, buf, 0);
}

이렇게 만들었습니다.

그냥 Hello 찍는 예제는 잘 돌아가는 것으로 봐서 빌드상의 오류나.. 그런건 없는 것 같은데요.
디버그 해보면 자꾸 UnsatisfiedLinkError 가 발생하네요.

09-04 03:41:59.654: WARN/dalvikvm(580): No implementation found for native Landroid/ndk/BitmapTest/BitmapNdk;.Binary ([I)V

09-04 03:42:01.193: ERROR/AndroidRuntime(580): FATAL EXCEPTION: main
09-04 03:42:01.193: ERROR/AndroidRuntime(580): java.lang.UnsatisfiedLinkError: Binary
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.ndk.BitmapTest.BitmapNdk.Binary(Native Method)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.ndk.BitmapTest.BitmapTestActivity.onCreate(BitmapTestActivity.java:54)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.os.Looper.loop(Looper.java:123)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at android.app.ActivityThread.main(ActivityThread.java:4627)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at java.lang.reflect.Method.invokeNative(Native Method)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at java.lang.reflect.Method.invoke(Method.java:521)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-04 03:42:01.193: ERROR/AndroidRuntime(580):     at dalvik.system.NativeStart.main(Native Method)

제 생각에는 JNI 함수나.. C 코드에서 틀렸으면 적어도 다른 에러가 발생 할 것 같아서요.
조언 부탁드립니다. ㅠ


아, 그리고 혹시 안드로이드에서 영상처리 하려고 할 때, 이 방법 말고 다른 좋은 방법 있으면 좀 알려주세요. ^^;