NDK を使用して Android ビルド システム内に Android ネイティブ モジュールをビルドしようとしています。私のモジュールは、Android モジュールの make コマンドを使用してビルドするときに、エラーなしで正しくビルドされます。しかし、NDK ビルド セットアップを使用しようとすると、Android システムのインクルード ファイルに問題が発生します。私のモジュール構造は次のとおりです。
android
|
external
|
MyModule
|
jni --> Android.mk
mysharedobj --> Android.mk
私のネイティブモジュールには、次のような多くのアンドロイドが含まれています
#include <JNIHelp.h>
#include "android_runtime/AndroidRuntime.h"
#include <gui/Surface.h>
#include <gui/ISurface.h>
NDK ドキュメントの助けを借りて、インクルード エラーを解決できましたが、いくつかのエラーに直面しています。
jni/com_my_module_NativeInterface.cpp:3:21: fatal error: JNIHelp.h: No such file or directory compilation terminated.
-->JNIHelp.h インクルード エラーを解決するために、Android.mk に次の行を追加しました。
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/../../../libnativehelper/include/nativehelper
この後またまたエラー、
jni/../../../libnativehelper/include/nativehelper/JNIHelp.h:27:24: fatal error: cutils/log.h: No such file or directory compilation terminated.
--> 上記のエラーを解決するために Android.mk を修正しました
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/../../../libnativehelper/include/nativehelper \
$(LOCAL_PATH)/../../../system/core/include \
この後またまたエラー
/home/user/android-ndk-r8e/platforms/android-3/arch-arm/usr/include/linux/uio.h:18:8: error: redefinition of 'struct iovec'
jni/../../../system/core/include/cutils/uio.h:33:8: error: previous definition of 'struct iovec'
Android システムのインクルード ファイルを使用するネイティブ モジュールを正常にビルドするにはどうすればよいですか? 私を助けてください。