我试图将Jnetpcap(一个Java包装与libpcap与JNI)移植到Android。我已经设法将libpcap编译为静态库,使用此存储库中的源代码:https://github.com/android/platform_external_libpcap和我获得的libpcap.aAndroid NDK:使用libpcap为Android编译错误 - 函数“未在此范围内声明”
当试图将Jnetpcap编译为共享库(以及与libpcap.a链接)时,我因为某些libpcap的函数“未在此范围内声明”而出现错误。这些函数是:pcap_create(),pcap_activate(),pcap_can_set_rfmon(),pcap_set_buffer_size(),pcap_set_promisc(),pcap_set_snaplen()和pcap_set_timeout()。
这些函数存在于libpcap的原始版本(包libpcap-dev提供的那个版本)中,但似乎android版本没有它们。可以针对intel x86和x64平台编译相同的Jnetpcap源文件,而不会出现任何问题。
我做错了什么?这些功能是否真的缺失?
我希望你们中的任何人都知道如何解决这个问题。谢谢。
感谢您的帮助。我降级到Jnetpcap 1.2,它与libpcap 0.9.8一起工作。我正在进行一些测试,但似乎我已经有了适用于Android的Jnetpcap 1.2工作端口。 它不支持实时捕获,因为该应用程序不能作为root运行,但解析功能应该很好地工作。 – Jimix 2011-03-31 11:03:36