使用 NDK 编译原生 C++ activity

Compile C++ native activity with NDK

我基于 NDK 中的“native-activity”项目创建了 Androidnative activity 项目。在这个项目中,android_main 函数在 main.c 文件中实现,并且编译和 运行 没有任何问题。

现在我想在此文件中实现一些 C++ 例程并为此执行此操作,作为第一步,我将 main.c 文件更改为 main.cpp 并将 Android.mk 中的 LOCAL_SRC_FILES 条目更改为 main.cpp

此更改后,我在编译时遇到以下错误:

make.exe: *** No rule to make target `jni/main.c', needed by `obj/local/arm64-v8a/objs/native-activity/main.o'.  Stop.

此项目中的 Android.mk 文件也包含以下条目:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := native-activity
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS    := -llog -landroid -lEGL -lGLESv1_CM -lGLESv2
LOCAL_STATIC_LIBRARIES := android_native_app_glue

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

此错误的可能原因是什么?

从工作区中删除您的 obj 目录并重建。有时 eclipse clean 不工作,无法删除 obj 文件。