4
我正在開發一個使用C++代碼的android應用程序。嘗試使用JNI但失敗。 在myFirstApp.cppUnsatisfiedLinkError:未找到本地方法 - Android
JNIEXPORT jint JNICALL Java_com_example_myfirstapp_CreateApp_findMarkersNative(
JNIEnv* env, jobject, jlong addrRgba) {
//clock_t begin = clock();
Mat& mRgb = *(Mat*) addrRgba;
Mat mgray(mRgb.rows, mRgb.cols, CV_8UC1);
cvtColor(mRgb, mgray, CV_RGBA2GRAY, 1); // the working one
clearVectors();
findSquares(mgray);
mergeRectangles();
processFilteredSquares(mgray);
drawFilteredSquaresWithoutMarker(mRgb);
__android_log_print(ANDROID_LOG_VERBOSE, APPNAME, "Candidates %i",candidates.size());
return clusterBoundaries.size();
// clock_t end = clock();
// mgray.release();
}
的代碼在Android活動(CreateApp),我已經聲明的方法
public native int findMarkersNative(long imgAdd);
活動中的包的名稱是
package com.example.myfirstapp;
的出現錯誤logcat
Caused by: java.lang.UnsatisfiedLinkError: Native method not found com.example.myfirstapp.CreateApp.findMarkersNative
不幸的是,它沒有工作。 – omarsafwany 2013-05-07 01:33:07
這是你的庫中完整的cpp代碼嗎?我不得不承認我不是jni的專家,但是如果是這樣的話,看起來你缺少一些加載和初始化例程。大多數工作示例是以「jint JNI_OnLoad」,get_native_data開始的,之後是extern「C」和所有方法。除非有人提供更好的建議,否則我只能推薦通過Android「獲取入門」資源和提示頁面,例如。 http://developer.android.com/training/articles/perf-jni.html#faq_ULE – 2013-05-07 01:56:45
這不是所有的代碼。我附上了問題似乎發生的部分。 – omarsafwany 2013-05-07 02:07:46