Android NDK: enlace usando una biblioteca estática precompilada
Estoy intentando portar Jnetpcap a Android para usarlo para analizar archivos .pcap. Jnetpcap es un contenedor de Java para libpcap que utiliza JNI. He compilado libpcap como una biblioteca estática usando el árbol de código fuente de Android.
Al compilar Jnetpcap como una biblioteca compartida, recibo errores porque tengo que vincularme con libpcap.a pero no sé cómo podría decirle a Android.mk que debe vincular con el archivo libpcap.a que tengo.
Usar "LOCAL_STATIC_LIBRARIES: = libpcap" no funcionará porque libpcap no viene por defecto en el NDK de Android.
Si alguno de ustedes pudiera ayudarme, estaría muy agradecido.
Aquí está mi archivo Android.mk actual:
include /home/sergio/workspace/MyApp/jni/libpcap/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := jnetpcap
LOCAL_SRC_FILES :=\
jnetpcap.cpp\
packet_flow.cpp\
packet_jheader.cpp\
jnetpcap_pcap_header.cpp\
nio_jbuffer.cpp\
winpcap_stat_ex.cpp\
winpcap_send_queue.cpp\
winpcap_ext.cpp\
jnetpcap_ids.cpp\
jnetpcap_dumper.cpp\
jnetpcap_utils.cpp\
util_in_cksum.cpp\
jnetpcap_beta.cpp\
nio_jmemory.cpp\
packet_jsmall_scanner.cpp\
packet_protocol.cpp\
nio_jnumber.cpp\
packet_jheader_scanner.cpp\
library.cpp\
packet_jscan.cpp\
jnetpcap_pcap100.cpp\
util_checksum.cpp\
packet_jpacket.cpp\
winpcap_ids.cpp\
jnetpcap_bpf.cpp
LOCAL_C_INCLUDES := /home/sergio/android-ndk-r5b/platforms/android-8/arch-arm/usr/include /home/sergio/workspace/Shark/jni/libpcap
LOCAL_STATIC_LIBRARIES := libpcap
include $(BUILD_SHARED_LIBRARY)