0

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
4

2 に答える 2

1

jniフォルダーを右クリックし、プロパティにアクセスしてc/c++一般をクリックし、インクルードフォルダーにndkに存在する以下のファイルをインクルードしてインポートし、適用をクリックする必要があります

d:/android/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6/include
i,d:/android/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6/include-fixed
i,D:/Android/android-ndk-r9/platforms/android-14/arch-arm/usr/include
于 2013-12-17T12:47:34.577 に答える