Неразрешенная ошибка включения при использовании NDK - PullRequest
8 голосов
/ 18 октября 2011

enter image description here
Я использую Android NDK, но файл .c в папке JNI показывает ошибку неразрешенного включения, как показано на рисунке: Пожалуйста, помогите мне в решении этой проблемы.Я перепробовал почти все, что мог найти в интернете, но не смог решить.Для проекта C / C ++ я могу использовать параметр пути сборки \ пути и символы для решения вопроса о включении, но для проекта Android этот параметр недоступен в свойствах проекта.

Ответы [ 6 ]

7 голосов
/ 09 ноября 2012

Это ошибка в плагине ADT (точнее, это звучит как несовместимость с более новой версией CDT для Eclipse) в Windows, задокументированная здесь: http://code.google.com/p/android/issues/detail?id=33788

Предварительный просмотр новой версиикоторая решает проблему, описанную здесь: http://tools.android.com/download/adt-21-preview#TOC-Installation

Вот что мне нужно было сделать, чтобы решить проблему:

  1. Включите Инструменты предварительного просмотра в Настройках диспетчера SDK, затем установитепредварительная версия инструментов SDK.
  2. Установите предварительную версию плагинов ADT и NDK в Eclipse, используя ссылку в описании предварительного просмотра, приведенную выше.
  3. Повторно создайте свой проект, чтобы я мог заново- выполните шаг «Добавить собственную поддержку» (по-видимому, он необходим для исправления).

Вероятно, можно достичь # 3, отредактировав соответствующие файлы проекта, а не создавая заново, но так как ям, на ранних стадиях разработки я не экспериментировал с этим.

6 голосов
/ 13 октября 2012

Была та же проблема, решена путем исправления пути в свойствах проекта ( C / C ++ General / Пути и символы / Включает ) из:

$ {NDKROOT}/ sources / cxx-stl / gnu-libstdc ++ / include

to:

$ {NDKROOT} / sources / cxx-stl / gnu-libstdc ++ / 4.6 / include

4 голосов
/ 08 марта 2012

Проект Android NDK -> Создать -> Папка -> Дополнительно -> Ссылка на альтернативное местоположение (связанная папка) Просмотрите путь (например): C: \ cygwin \ lib \ gcc \ i686-pc-cygwin \ 3.4.4 \ include. Путь зависит от версии cygwin, которую вы используете.

1 голос
/ 23 сентября 2015

В текущей папке Android NDK (Revision 10e) gnu-libstdc++/4.6 не существует - необходимо изменить пути сборки Eclipse:

Проект - Свойства - C / C ++ Общее - Пути и символы - Включает - GNU C, GNU C ++

${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include

Изменить на:

${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.8/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include
0 голосов
/ 03 декабря 2015

1 закрыть проект. откройте .project в другом редакторе. удалить следующее:

......
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
......
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
......
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>

2 удалить .cproject

3 открыть проект в затмении, обновить. Щелкните правой кнопкой мыши, свойства-> Инструменты Android -> Добавить собственную поддержку. Решено, теперь мы можем Ctrl + клик, чтобы открыть ссылку.

4 Если методы и символы по-прежнему отображаются нерешенными, попробуйте следующее: Перейдите в Свойства проекта -> Общие положения C / C ++ -> Анализ кода. Нажмите кнопку «Использовать настройки проекта» (или «Настроить параметры рабочего пространства ...»). Отключите (снимите флажок) флажок «Метод не может быть решен».

0 голосов
/ 22 ноября 2011

Единственное, что мне удалось найти в моем проекте, - отключить предупреждения #include в Eclipse Preferences -> General -> Editors -> Text Editors -> Annotations -> C/C++ Indexer Markers.

Поскольку настройки проектов C / C ++ не отображаются в проектах Android, я не смог ввести каталоги включения для кода NDK.

...