我的项目/ jni文件夹中有以下代码作为我的Android.mk。文件夹libA在project / jni中,它有一个Android.mk。我在jni / Android.mk
中包含了libAJNI / Android.mk:
LOCAL_PATH := $(call my-dir)
include $(LOCAL_PATH)/libA/Android.mk
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)
我收到此错误
jni/Android.mk:16: jni: Permission denied
jni/Android.mk:16: /libA/Android.mk: No such file or directory
make: *** No rule to make target `/libA/Android.mk'. Stop.
我试过这个解决方案: No rule to make target NDK。但同样的错误又出现了。我无法弄清楚为什么会这样。
答案 0 :(得分:1)
在做了一些研究而不是在不同目录中弄乱makefile之后,我将库的源代码放在/ jni中并从/jni/Android.mk编译它,问题就解决了。 我想这是最简单的方法
答案 1 :(得分:1)
Makefile是一件棘手的事情。当调用子目录等时,my-dir会被更改。 但是你可以在不将源代码放在/ jni文件中的情况下解决它。
MY_PATH = $(call my-dir)
LOCAL_PATH = $(MY_PATH)
在任何明确的变量之前调用第二个语句。完成!