неопределенная ссылка на ошибку __android_log_print

Есть несколько вопросов, подобных этому, но ни одно из предложенных решений не помогает. Сборка выводит ошибку из заголовка при сборке приложения с двумя модулями. Один из модулей имеет собственный файл кода.

Я проверил множество тем, и все они предлагали включить -llog. Аналогичная тема здесь.

мой Android.mk:

   LOCAL_PATH := $(call my-dir)

   include $(CLEAR_VARS)

   LOCAL_MODULE    := com_couchbase_touchdb_TDCollateJSON
   LOCAL_SRC_FILES := com_couchbase_touchdb_TDCollateJSON.cpp
   LOCAL_LDLIBS    := -landroid -llog -ldl -L$(LOCAL_PATH)

   include $(BUILD_SHARED_LIBRARY)

У меня также есть заголовок <android/log.h>, включенный в файл .cpp, но я все равно получаю ту же ошибку.


person mdzeko    schedule 02.07.2014    source источник
comment
Пожалуйста, опубликуйте полный чистый журнал ndk-build V=1.   -  person Alex Cohn    schedule 02.07.2014
comment
@AlexCohn, я приостановил этот проект. Спасибо за помощь.   -  person mdzeko    schedule 16.07.2014


Ответы (1)


Скорее всего это не __android_log_print, а что-то другое, похожее в вашем шрифте, например, __andriod_log_prlnt (2 опечатки). В проекте C++ есть искажение имени, и, возможно, в одном из файлов (это может быть даже файл .h) отсутствует заголовок (то есть порядок #includes может быть важен). IIRC порядок переключателей -L/-l также важен, но, вероятно, здесь это не так.

Я бы начал с образца hello-jni в NDK и добавил к нему ведение журнала; затем я бы постепенно добавлял код приложения. Если после этого все заработает, следующим шагом будет перемещение папки jni/ в проект вашего приложения, иначе вы бы знали, какой шаг вы сделали, прежде чем он сломался.

На всякий случай:

#include <android/log.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG  , "~~~~~~", __VA_ARGS__)
#define DLOG(...) __android_log_print(ANDROID_LOG_DEBUG  , "~~~~~~", __VA_ARGS__)
person 18446744073709551615    schedule 03.07.2014
comment
Спасибо @ 18446744073709551615. Я поставил паузу в этом проекте, так как у меня есть другой, более важный. Как только я это проверю, Вы будете уведомлены. Еще раз спасибо. - person mdzeko; 16.07.2014