NDK プロジェクトの Eclipse インデクサーに問題があります。似たようなスレッドがたくさんありますが、同じ問題の原因に触れているように見えるスレッドはありません。純粋に C で記述された Android に移植する必要がある OpenGL ES アプリケーションがあり、それを NativeActivity として実行したいと考えています。できれば Java を接続していません。ndk-buildコードは何度も書き直した後、正常にコンパイルされますが、IDE からはType 'GLfloat' could not be resolved. APK が生成され、それをインストールすることadbができますが、特にデバッグのために IDE を使用できるようにしたいと考えています。
次のような行のコンテキスト メニューで [宣言を開く] を選択すると#include <GLES2/gl2.h>、Eclipse はファイルを表示でき、GLfloat定義がそこにあることがわかりますが、そのファイル内の何かにカーソルを合わせても情報が得られないため、インデクサーはスキップするだけだと思います。なんとなく?Android NDK ディレクトリにないヘッダー ファイルは、jniフォルダーやjni/png. ネイティブ機能を備え、CDT ビューを使用するプロジェクトの下にルートをNDKROOT定義しました。C/C++ Build -> Environment
私が気づいたことの 1 つは、最初にプロジェクトをセットアップしたときに.cpp、インデクサーが問題なく Android NDK 情報を提供するファイルを持っていたが、それを変更するとすぐに.cエラーが表示され始めたことです。Android NDK は C で使用するために作成されており、基本的な C++ サポートのみがサポートされているという印象を受けていますが、サンプルを見てみると、たくさんの.cppファイルが表示されるだけなので、混乱しています。私はLOCAL_CPP_EXTENSION += .c自分で設定しようとしましたAndroid.mkが、ビルド中にEclipseがハングアップしました。私が試していない最後のことは、すべてのファイルの名前を変更して、代わりに C++ コンパイラでコンパイルされるようにすることですが、なぜこれが必要なのかわかりません。むしろいじらないでください。
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)
アプリケーション.mk
APP_PLATFORM := android-9
APP_ABI := all