Я использую библиотеки Eclipse + Qualcomm (в cpp) + Android SDK в Ubuntu. Мое приложение работает нормально. Если я изменю код в библиотеках qualcomm, он скомпилируется и будет работать правильно.
Проблема в том, что я изменил название проекта, и мне нужно изменить какой-то код в cpp (название функции), если я не сделаю это, я получу Java.lang.UNSATISFIEDLINKERROR
.
Это потому, что все функции имеют название в виде пакета 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 с верхним определением, которое автоматически изменит все, если мне понадобится использовать его в других проектах.
Я прочитал этот урок . Разве я не могу заменить текст внутри другого текста или что-то в этом роде?