Cygwin ターミナル経由で「ndk-build」を実行して、Android NDK 関数 (「AAsset_close」など) を呼び出す Android-9 プロジェクトをコンパイルしようとしていますが、「ndk-build」コマンドはエラー メッセージを返します。関数定義が見つかりません。
「ndk-build」からのエラー メッセージは次のとおりです。
[Android NDK パス]/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm -linux-androideabi/bin/ld.exe: [プロジェクト フォルダ]/static ライブラリ: 関数内 [関数名]:[ファイル名]:39: エラー: 'AAsset_close' への未定義参照
等
私の「Android.mk」ファイルは次のとおりです。
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := <name of project>
LOCAL_C_INCLUDES := <folders where header files are located>
LOCAL_CFLAGS := $(LOCAL_C_INCLUDES:%=-I%) -O2 -Wall -D__ANDROID__ -DtyANDROID
LOCAL_CPPFLAGS := $(LOCAL_C_INCLUDES:%=-I%) -O2 -Wall -D__ANDROID__ -DtyANDROID
LOCAL_LDLIBS := -lm -lEGL -lGLESv2 -llog -lz -landroid
LOCAL_STATIC_LIBRARIES := android_native_app_glue
LOCAL_ARM_MODE := arm
LOCAL_SRC_FILES := <source files>
include $(BUILD_STATIC_LIBRARY)
...
私の「Application.mk」メイクファイルは次のとおりです。
APP_ABI := armeabi armeabi-v7a x86
APP_PLATFORM := android-9
「nm」Unix コマンドによると、この関数は、すべてのターゲット プラットフォームの NDK パスに存在する Android NDK ライブラリ「libandroid.so」内で定義されます。上で示したように、「-landroid」を「LOCAL_LDLIBS」マクロに含めました。これにより、そのライブラリにリンクできるようになります。このコンパイル エラーを修正するには、他に何をする必要がありますか?