Could someone help me locate my error, I have looked at looked I can't seem to find it, I am trying to run my code but it keeps giving me the error java.lang.UnsatisfiedLinkError: Native method not found: nemo.lungu.receiptor.scanlibrary.ScanActivity.getPoints:(Landroid/graphics/Bitmap;)[F below is my activity method getPoints():
public native float[] getPoints(Bitmap bitmap); the Header version of the method getPoints():
JNIEXPORT jfloatArray JNICALL Java_nemo_lungu_receiptor_scanlibrary_ScanActivity_getPoints (JNIEnv *, jobject, jobject); and finally the implementation of the method getPoints() in my .cpp file:
JNIEXPORT jfloatArray JNICALL Java_nemo_lungu_receiptor_scanlibrary_ScanActivity_getPoints (JNIEnv *env, jobject thiz,jobject bitmap) { __android_log_print(ANDROID_LOG_VERBOSE, APPNAME, "Scaning getPoints"); int ret; AndroidBitmapInfo info; void* pixels = 0; if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) { __android_log_print(ANDROID_LOG_VERBOSE, APPNAME,"AndroidBitmap_getInfo() failed ! error=%d", ret); return 0; } if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888 ) { __android_log_print(ANDROID_LOG_VERBOSE, APPNAME,"Bitmap format is not RGBA_8888!"); return 0; } if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) { __android_log_print(ANDROID_LOG_VERBOSE, APPNAME,"AndroidBitmap_lockPixels() failed ! error=%d", ret); } // init our output image Mat mbgra(info.height, info.width, CV_8UC4, pixels); vector<Point> img_pts = getPoints(mbgra); jfloatArray jArray = env->NewFloatArray(8); if (jArray != NULL) { jfloat *ptr = env->GetFloatArrayElements(jArray, NULL); for (int i=0,j=i+4; j<8; i++,j++) { ptr[i] = img_pts[i].x; ptr[j] = img_pts[i].y; } env->ReleaseFloatArrayElements(jArray, ptr, NULL); } AndroidBitmap_unlockPixels(env, bitmap); return jArray; }
Am loading the library like:
static { System.loadLibrary("myLibraryName"); } Which seems to load successfully as it gives me the message Added shared lib /data/app-lib/nemo.lungu.receiptor-2/myLibraryName.so 0xa4fe5e78 but again after that it gives me another message to say No JNI_OnLoad found in /data/app-lib/nemo.lungu.receiptor-2/myLibraryName.so 0xa4fe5e78, skipping init so I do not know if that is the cause or something else.