您需要在c/C++端更改根據JNI的實現方式,有兩種可行的方法。
A.功能名稱中包含完整的類路徑
JNIEXPORT jlong JNICALL Java_"package with underscore instead of .""class""method"(JNIEnv *env, jclass class,...
例如
JNIEXPORT jlong JNICALL Java_com_android_mms_transaction_NativeSms_send(JNIEnv *env, jclass class,...
匹配方法在類NativeSms發送在包com.android.mms.transaction
B.有供應回到達爾維克串/ JAVAVM與類路徑。尋找這樣的成才:
static int registerMethods(JNIEnv* env) {
static const char* const kClassName =
"com/example/android/platform_library/PlatformLibrary";
jclass clazz;
/* look up the class */
clazz = env->FindClass(kClassName);
if (clazz == NULL) {
LOGE("Can't find class %s\n", kClassName);
return -1;
}
/* register all the methods */
if (env->RegisterNatives(clazz, gMethods,
sizeof(gMethods)/sizeof(gMethods[0])) != JNI_OK)
{
LOGE("Failed registering methods for %s\n", kClassName);
return -1;
}
...
編輯2011-12-07澄清第一個例子
你試過更新Android.mk這是文件夾PocketSphinxDemo/jni ???您需要更新此文件中的路徑。 – mhshams
感謝您的回覆,但就我而言,沒有需要更改的路徑,因爲改變的唯一路徑是'/ PROJECT/src/...'路徑。 – Force