2011-03-06 7 views
20

Tengo un proyecto que está reutilizando una biblioteca nativa (libocr.so) precompilada y para la que no tengo archivos fuente. Puse manualmente la biblioteca en libs/armeabi de mi proyecto y todo funciona perfectamente.Impedir que las bibliotecas agregadas manualmente sean eliminadas por ndk-build

Luego tuve que crear una nueva biblioteca nativa para el mismo proyecto. Puse mi código fuente como el archivo Android.mk en mi carpeta jni y lo construyo con el comando ndk-buld. La biblioteca está compilada y se coloca en la carpeta libs/armeabi, pero libocr.so (la agregada manualmente) se elimina automáticamente de allí ... ¿Cómo puedo evitar que se elimine libocr.so?

Aquí está mi archivo Android.mk:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := libyuv 
LOCAL_SRC_FILES := ycrcbutils.c 

include $(BUILD_SHARED_LIBRARY) 

Gracias de antemano por cualquier ayuda, Luca.

Respuesta

26

... ok he encontrado la respuesta por mí mismo ... acuerdo con ndk/docs/PREBUILTS.HTML cambié Android.mk así:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_LDLIBS := -llog 

LOCAL_MODULE := libyuv 
LOCAL_SRC_FILES := ycrcbutils.c 

include $(BUILD_SHARED_LIBRARY) 


# Add prebuilt libocr 
include $(CLEAR_VARS) 

LOCAL_MODULE := libocr 
LOCAL_SRC_FILES := libocr.so 

include $(PREBUILT_SHARED_LIBRARY) 

y se coloca una copia de mi libocr.so en la carpeta JNI de mi proyecto .

+12

Tenga en cuenta el uso opcional de TARGET_ARCH_ABI, por ejemplo: LOCAL_SRC_FILES: = preconstruido/$ (TARGET_ARCH_ABI) /libfoo.so – NateS

+0

@NateS te quiero mucho. –

+0

@lviggiani me estoy enfrentando un problema similar y solo tengo .so archivo no .cpp y cuando ejecuto el programa da error stop abborted – justchill

Cuestiones relacionadas