Android NDK-无规则作为目标。停止

时间:2019-01-26 16:32:29

标签: android c++ android-studio android-ndk

有一些关于此错误的解决方案。但是他们没有解决我的问题。

我已经在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'。停止。

文件结构在这里 enter image description here

编辑

我找到了解决方案。我不会删除这个问题。我已经更改了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)

0 个答案:

没有答案