2

project/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.

私はこれで与えられた解決策を試しました: ターゲット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)

クリア変数の前に2番目のステートメントを呼び出します。終わり!

于 2012-05-24T10:07:44.470 に答える