Использование Android NDK и C ++

Я получил пример проекта HelloJni, который использует файл C для собственного кода. Я не смог получить простые примеры работы с C ++. Возьмите следующий код JNI:

#include <jni.h> #include <string.h> JNIEXPORT void JNICALL Java_com_test_testActivity_doSomething(JNIEnv * env, jobject obj) { } 

Если у меня есть код в .c файле, он отлично работает. Если я изменю расширение на .cpp, он компилируется нормально, но сработает при запуске (принудительное закрытие). Поскольку подпись библиотеки и метода одинакова в любом случае, я не подозреваю, что проблема находится на стороне Java.

Возможно, вам необходимо окружить ваш код extern "C" блоком extern "C" :

 extern "C" { JNIEXPORT ... } 

Вы должны иметь возможность сделать версию, которая будет работать как на C, так и на C ++, обернув блок extern в #if :

 #ifdef __cplusplus extern "C" { #endif JNIEXPORT ... #ifdef __cplusplus } #endif 

Java_com_test_testActivity_doЧто-то должно быть extern «C».

Попробуйте положить extern «C» вокруг экспортированных определений функций.

Intereting Posts
Отмените размер шрифта в настройках системы Android. Как решить размер экрана Android для разных мобильных устройств? Обнаружение, если вы находитесь в одном километре от точки интереса Запуск намерения SMS-сообщения больше не работает для новой операционной системы Droid RAZR ICS Метод Android drawBitmap (…) медленный? Как быстро использовать прокрутку в Android? Имейте некоторые проблемы с файлом xml. Android. Затмение. Ошибка: неверный начальный тег PreferenceScreen Поиск приложений для Android с помощью разрешений, возможностей и намерений ImageView ScaleType игнорирует прописку Есть ли способ вибрировать менее чем за 1 миллисекунду на Android? Узнать, какая деятельность начала мою деятельность? Android NDK книги или другие материалы Тесты на ногу для студий (инструментов) для Android Android File Transfer не может видеть папку, созданную приложением Который является хорошим методом отправки 50 МБ данных в одном слоте или любым другим способом отправки 50 МБ данных json на сервер в android?