1

Ndk を使用して Android Cpp プロジェクトをビルドしようとしています。

アプリをビルドすると、jniフォルダーファイルのみが生成されます

jni サブフォルダー ファイルを生成できません

このエラーが発生しました

make: *** ターゲットsrc/main/jni/src/main/jni/A/B/Helper.cpp', needed bybuild/intermediates/ndk/obj/local/armeabi/objs/demo/src/main/jni/A/B/Helper.o' を作成するルールはありません。止まる。

TOP_LOCAL_PATH:=$(call my-dir)
LOCAL_PATH := $(TOP_LOCAL_PATH)  
include $(CLEAR_VARS)

LOCAL_MODULE    := demo

LOCAL_SRC_FILES := a.cpp b.cpp c.cpp d.cpp
LOCAL_SRC_FILES := $(LOCAL_PATH)/A/B/Helper.cpp

LOCAL_CFLAGS    += -std=c++11 -frtti -fexceptions -fpermissive
LOCAL_LDLIBS    += -llog -lGLESv2 -lEGL -landroid -lOpenSLES -lGLESv1_CM -lz

LOCAL_C_INCLUDES := $(LOCAL_PATH)/A/B

include $(BUILD_SHARED_LIBRARY)
4

1 に答える 1

1

にリストLOCAL_SRC_FILESされているファイル名は、. また、このリストを複数の行で定義することもできますが、リストを置き換えるのではなく追加することによって行います。LOCAL_PATH

したがって、Android.mkファイルはおそらく次のようになります。

TOP_LOCAL_PATH:=$(call my-dir)
LOCAL_PATH := $(TOP_LOCAL_PATH)  
include $(CLEAR_VARS)

LOCAL_MODULE    := demo

LOCAL_SRC_FILES := a.cpp b.cpp c.cpp d.cpp
LOCAL_SRC_FILES += A/B/Helper.cpp

LOCAL_CFLAGS    += -std=c++11 -frtti -fexceptions -fpermissive
LOCAL_LDLIBS    += -llog -lGLESv2 -lEGL -landroid -lOpenSLES -lGLESv1_CM -lz

LOCAL_C_INCLUDES := $(LOCAL_PATH)/A/B

include $(BUILD_SHARED_LIBRARY)

LOCAL_C_INCLUDESリストには絶対パスを使用する必要があることに注意してください。

于 2015-11-06T11:41:26.050 に答える