有一些关于此错误的解决方案。但是他们没有解决我的问题。
我已经在Android Studio中创建了一个C ++项目。它使用cmake构建,并且有效。但是我想使用ndk-build。因此,我从build.gradle中删除了以下代码:
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
我在src / main下创建了jni文件夹。然后,我创建了Android.mk和Application.mk文件。
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := native-lib.cpp
LOCAL_MODULE := native-lib
include $(BUILD_SHARED_LIBRARY)
Application.mk
LOCAL_PATH := $(call my-dir)
APP_BUILD_SCRIPT := $(LOCAL_PATH)/Android.mk
APP_ABI := armeabi x86
APP_PLATFORM := android-19
APP_STL := gnustl_static
NDK_TOOLCHAIN_VERSION := 4.9
build.gradle
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
下面是错误消息
make:***没有规则可以成为目标
PROJECTPATH/app/src/main/jni/native-lib.cpp', needed by
PROJECTPATH / app / build / intermediates / ndkBuild / debug / obj / local / armeabi / objs / native-lib / native-lib.o'。停止。
编辑
我找到了解决方案。我不会删除这个问题。我已经更改了Android.mk文件中的LOCAL_SRC_FILES值。而且有效!
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := native-lib
LOCAL_SRC_FILES := $(LOCAL_PATH)/../cpp/native-lib.cpp
include $(BUILD_SHARED_LIBRARY)