Я разрабатываю приложение для Android, которое использует JNI.
Команда javah -jni com.company.tests.MainRenderer
выдала мне такой вывод:
/*
* Class: com_company_tests_MainRenderer
* Method: nativeInit
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_company_tests_MainRenderer_nativeInit
(JNIEnv *, jclass);
/*
* Class: com_company_tests_MainRenderer
* Method: nativeRender
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_company_tests_MainRenderer_nativeRender
(JNIEnv *, jclass);
Команда nm -Ca libRotateJNI.so
выдала мне такой вывод:
00001c25 T Java_com_company_tests_MainRenderer_nativeInit(_JNIEnv*, _jclass*)
00001c29 T Java_com_company_tests_MainRenderer_nativeRender(_JNIEnv*, _jclass*)
Вот как определяются эти функции:
void Java_com_company_tests_MainRenderer_nativeInit( JNIEnv* env, jobject thiz )
{
// ...
}
void Java_com_company_tests_MainRenderer_nativeRender( JNIEnv* env, jobject thiz )
{
// ...
}
И запускаем его с таким сообщением:
WARN/dalvikvm(639): No implementation found for native Lcom/company/tests/MainRenderer;.nativeInit ()V
Я уверен, что библиотека загружена.Вы знаете, как я могу решить эту проблему?