От this tutorial.Как соединить любую библиотеку в приложении ndk
см у меня есть одна преднастроенные статическая библиотека названа stackoverflow.a
и имеет stackoverflow.h
теперь я хочу использовать функцию этой статической библиотеки в
ndk_demo.c
// что учебник имеет этот файл
для этого внутри ndk_demo.c
я добавил
#include 'stackoverflow.h'
Редактировать
inside `android-ndk-r7c`
|
apps
|
ndk_demo
|
-----------------
| |
project Application.mk
|
--------------------
| |
all other |
folder jni
|
-------------------------------------------------------------------
| | | | |
ndk_demo.c stackoverflow.h lib com_marakana Android.mk
| _NativeLib.h
|
--------------------
| |
Android.mk libstackoverflow.a
Теперь Application.mk
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := ndk_demo stackover
Теперь JNI/Android.mk
include $(call all-subdir-makefiles)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ndk_demo
LOCAL_SRC_FILES := ndk_demo.c
LOCAL_STATIC_LIBRARIES := stackover
include $(BUILD_SHARED_LIBRARY)
Теперь JNI/Библиотека/А roid.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := stackover
LOCAL_SRC_FILES := libstackoverflow.a
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
Теперь из android-ndk-r7c
каталога я запустить
make APP=ndk_demo
он показывает мне ошибку, как
Android NDK: Building for application 'ndk_demo'
make: *** No rule to make target `build/core/ndk_demo.c', needed by `out/apps/ndk_demo/armeabi/objs/ndk_demo/ndk_demo.o'. Stop.
почему это происходит я не получаю?
если я комментарий
#include $(call all-subdir-makefiles)
это из jni/Android.mk
затем он показывает следующие ошибки
Android NDK: Building for application 'ndk_demo'
Compile thumb : ndk_demo <= ndk_demo.c
SharedLibrary : libndk_demo.so
./out/apps/ndk_demo/armeabi/objs/ndk_demo/ndk_demo.o: In function `Java_com_marakana_NativeLib_hello':
/home/jeegar/android-ndk-r7c/apps/ndk_demo/project/jni/ndk_demo.c:10: undefined reference to `stackoverflowInit'
collect2: ld returned 1 exit status
make: *** [out/apps/ndk_demo/armeabi/libndk_demo.so] Error 1
Вы можете разместить компилировать и компоновать команду, которая выходит из Makefile? – ams
дубликат: http://stackoverflow.com/questions/6165813/using-my-own-prebuilt-shared-library-in-and-android-ndk-project – bitwise
@ Ник, пожалуйста, см. Мое обновление –