Никакой реализации не найдено для native

Я скомпилировал свои c-источники с помощью android-ndk, затем я поместил файл .so в папку libs моего проекта Android, но когда я вызываю собственную функцию, у меня есть ошибка «Не реализована для родной». Если я попытаюсь вызвать эту функцию из оболочки adb, все будет хорошо, поэтому я не понимаю, почему эта ошибка. Пожалуйста, помогите, Андреа

Solutions Collecting From Web of "Никакой реализации не найдено для native"

Существует точная схема именования, связанная с JNI, которая не очень очевидна. Возможно, ваша реализация функции не соответствует ей?

Например, если вы хотите иметь возможность называть собственную функцию, называемую startServer, из вашего кода JAVA, считая, что ваш пакет называется com.example.something, а ваш класс называется MyClass, у вас должна быть функция-член в вашем классе JAVA :

private native void startServer(); 

И тогда ваша реализация JNI должна выглядеть так:

 JNIEXPORT void Java_com_example_something_MyClass_startServer(JNIEnv *env, jobject obj) { // Do something here... } 

В противном случае возникает ошибка связи.

Еще одна причина, по которой вы можете получить это, – это то, что вы не вызываете свою библиотеку во время вызова функции JNI:

 static { System.loadLibrary("myJNIFILE"); } 

Следует называть где-то до фактической ссылки на функцию JNI.