ложная ошибка Eclipse: функция '__android_log_print' не может быть разрешена (Android, CDT) - PullRequest
9 голосов
/ 13 февраля 2012

У меня есть проект Android NDK, чья часть NDK компилируется нормально из командной строки;Раньше у меня не было проблем с запуском скомпилированного материала из-под Eclipse как проекта на чистом JavaНо я преобразовал его в проект C / C ++ и теперь даже не могу его запустить.

Я вижу в «Консоли», что библиотека построена, НО: Eclipse говорит мне, что в моем проекте есть ошибки, и он не будетзапустить его.(Почему, черт возьми? Код скомпилирован !!!)

Я решил некоторые проблемы с отсутствующими символами, добавив пути включения в свойства проекта.

Но яЯ все еще получаю эту странную Function '__android_log_print' could not be resolved ошибку.

Итак, два вопроса:

  1. Как мне избавиться от этой ошибки? (Может ли это бытьигнорируется?)
  2. План Б: как преобразовать этот смешанный проект C / C ++ / Java в чистый Java?

= = =

PS «Как вы называете корабль, так и будет».Не могли бы они просто найти лучшее название для IDE, что-то вроде «Lucid coding»?(Риторический вопрос)

= = =

ОБНОВЛЕНИЕ: похоже, Eclipse сообщает об ошибках только для файлов, которые он видит (то есть показывает вам).Я открыл другой файл с макросом LOGD, и Eclipse также сообщил об ошибке.Я закрыл все окна файлов, закрыл Eclipse и удалил файл .something.После этого я смог запустить приложение.Я не рискнул открыть исходные файлы с этим макросом регистрации.(Это очень далеко от "Lucid Coding", не так ли?)

Ответы [ 4 ]

6 голосов
/ 22 марта 2012

Конфигурация индексатора CDT должна включать «Индексировать неиспользуемые заголовки ...»

Как туда попасть: Project-> Properties-> C / C ++ General-> Indexer.

enter image description here

Избавляется от ошибки для меня.

2 голосов
/ 13 февраля 2012

Как это можно игнорировать: откройте окно «Проблемы», выберите ошибки в файлах c / c ++ и нажмите клавишу Del.Появится окно с сообщением подтверждения, но после этого вы сможете отлаживать свое приложение ... до следующей перестройки =) В качестве альтернативы, как вы упоминали ранее, вы можете просто закрыть все открытые файлы c / c ++.

1 голос
/ 13 февраля 2012

В вашем файле Android.mk, пожалуйста, добавьте

LOCAL_LDLIBS := -llog -landroid

__android_log_print не является частью libc, он находится в библиотеке журналов, поэтому вам нужно явно объявить, что он связан.

Обратите внимание, что затмение откажется запускать проект, если есть ошибки на стороне C или Java.В этом случае есть ошибка компоновщика;код не завершил компиляцию, поэтому он не запустится.

0 голосов
/ 20 сентября 2013

в качестве альтернативы вы можете перепечатать эти строки и перезапустить Eclipse;Все эти исправления звучат глупо, хотя ...

...