2

我的项目/jni 文件夹中有以下代码作为我的 Android.mk。文件夹 libA 在 project/jni 中,它有一个 Android.mk。我在 jni/Android.mk 中包含了 libA

jni/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。但同样的错误再次出现。我无法弄清楚为什么会这样。

4

2 回答 2

1

在做了一些研究而不是弄乱不同目录中的makefile之后,我将库的源代码放在/jni中并从/jni/Android.mk编译它,问题就解决了。我想这是最简单的方法

于 2012-05-24T06:14:25.047 回答
1

Makefile 是一件棘手的事情。当您调用子目录等时, my-dir 会更改。但是您实际上可以在不将源代码放在 /jni 文件中的情况下解决它。

MY_PATH = $(call my-dir)
LOCAL_PATH = $(MY_PATH)

在任何明确的变量之前调用第二个语句。完毕!

于 2012-05-24T10:07:44.470 回答