Я использую библиотеки Eclipse + Qualcomm (в cpp) + Android SDK на Ubuntu. Мое приложение работает нормально. Если я изменю код в библиотеках qualcomm, он компилируется и работает правильно.
Проблема: я изменил имя проекта, и мне нужно изменить код в cpp (имя функции), если я этого не сделаю, я получаю Java.lang .UNSATISFIEDLINKОШИБКА
.
Это потому, что все функции имеют имя пакета Android, например:
Java_org_myproject_marker_MainActivity_onQCARInitializedNative(JNIEnv *, jobject)
Затем я определяю макрос следующим образом:
#define MAIN_ACTIVITY_PREFIX org_myproject_marker_MainActivity
#define VISUALIZER_PREFIX org_myproject_marker_Visualizer
И я изменяю все правильные функции на:
Java_MAIN_ACTIVITY_PREFIX_onQCARInitializedNative(JNIEnv *, jobject)
, но я все еще получаю Исключение Java.lang.UNSATISFIEDLINKERROR
.
Это сработает, если я сделаю это без макроса #define
(и напишу все строки), но я хочу сохранить код cpp с помощью верхнего определения, которое изменяет все автоматически, если мне нужно его использовать в других проектах.
Я прочитал это руководство . Разве я не могу заменить текст внутри другого текста или что-то в этом роде?