Я прочитал много постов, но пока не могу решить.
Есть мои строки ошибок и структура проекта:
Некоторые библиотеки и конфиги я беру из другого проекта … И не знаю, где я ошибся.
Я дам вам исходный код файлов, если это необходимо
Спасибо за любую помощь.
Я также получаю эту ошибку после обновления с Android Studio 2 до 3. Код компилируется, но IDE не распознает нативные функции. (Это может быть связано с созданным мной макросом препроцессора, который упрощает имена функций JNI.)
Я подавил эту ошибку в Java, добавив @SuppressWarnings("JniMissingFunction")
до моего объявления класса.
Итак, эта отсутствующая «функция JNI» не имеет большого значения. Я знаю, что он выделен красным, но функция связана, но не так, как это может определить IDE.
Во-первых, вот соответствующий исходный код: https://github.com/koreader/crengine/blob/master/android/jni/cr3engine.cpp#L770
CrEngine связывает функции во время выполнения. Причина, по которой ваша IDE не поднимает их, заключается в том, что функции CrEngine начинаются с Java_org_
вместо Java_com_
, Если вы полагались на механизм автоматической связи, это было бы проблемой, но, как уже говорилось ранее, они явно связаны во время выполнения с jniRegisterNativeMethods
,
Сделать clean
и обновите ваши инструменты сборки до 25.0.3 (или лучше) в вашем файле gradle.build. Обновите свои SDK и NDK. Затем восстановите. Некоторые ошибки, которые я видел, могут быть вызваны более старыми инструментами сборки.