Eclipse ADT „… nie można było rozwiązać” za pomocą plików Android NDK i C

Mam problemy z indeksatorem Eclipse dla mojego projektu NDK. Istnieje wiele podobnych wątków, ale żaden z nich nie wydaje się dotykać tego samego źródła problemów. Mam aplikację OpenGL ES, którą muszę przenieść do Androida napisanego wyłącznie w języku C, który chciałbym uruchomić jako NativeActivity, najlepiej bez dołączonej do niego Java. Kod dobrze się kompiluje za pomocąndk-build po wielu przepisaniach, ale z IDE jest wiele błędów, takich jakType 'GLfloat' could not be resolved. Zostanie wygenerowany plik APK i mogę go zainstalowaćadb i wszystko, ale chcę móc używać IDE, zwłaszcza do debugowania.

Jeśli wybiorę „Otwórz deklarację” w menu kontekstowym dla linii takiej jak#include <GLES2/gl2.h> następnie Eclipse może wyświetlić plik i widzęGLfloat definicja jest dostępna, ale nie otrzymuję informacji podczas przesuwania kursora nad czymkolwiek w tym pliku, więc myślę, że indeksator po prostu go jakoś pomija? Pliki nagłówkowe, które nie znajdują się w katalogu Android NDK, są indeksowane w porządku, na przykład w plikujni folder i podfolderyjni/png. mamNDKROOT root zdefiniowany wC/C++ Build -> Environment, projekt z rodzimymi możliwościami i widokiem CDT.

Jedną z rzeczy, które zauważyłem, było to, że kiedy zakładałem projekt początkowo miałem.cpp plik, którego indeksator nie miał problemu z dostarczeniem informacji o Android NDK, ale gdy tylko zmieniłem go na.c błędy zaczęły się pojawiać. Mam wrażenie, że Android NDK został stworzony do użytku z C z podstawową obsługą C ++, ale rozglądam się w próbkach i po prostu widzę kilka.cpp pliki, więc jestem zdezorientowany. Próbowałem ustawieniaLOCAL_CPP_EXTENSION += .c w moimAndroid.mk ale to spowodowało, że Eclipse zawiesił się podczas kompilacji. Ostatnią rzeczą, której nie próbowałem, jest zmiana nazwy wszystkich plików, aby zamiast tego zostały skompilowane z kompilatorem C ++, ale nie widzę powodu, dla którego miałoby to być konieczne, a ja mam kilka bibliotek innych firm, takich jak zlib, dołączonych przez źródło, które raczej nie baw się.

Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

define all-cpp-files-under
$(patsubst ./%, %, \
    $(shell cd $(LOCAL_PATH) ; \
        find $(1) -name "*.c" -and -not -name ".*") \
)
endef

LOCAL_MODULE    := MyProject
LOCAL_SRC_FILES := $(call all-cpp-files-under, .)
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2 -lOpenSLES
LOCAL_STATIC_LIBRARIES := android_native_app_glue
LOCAL_C_INCLUDES += $(LOCAL_PATH)/jansson
LOCAL_C_INCLUDES += $(LOCAL_PATH)/zlib
LOCAL_C_INCLUDES += $(LOCAL_PATH)/png

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)
Aplikacja.mk
APP_PLATFORM := android-9
APP_ABI := all

questionAnswers(2)

yourAnswerToTheQuestion