1

Jnetpcap(JNIを使​​用したlibpcapのJavaラッパー)をAndroidに移植しようとしています。このリポジトリのソースコードを使用して、libpcapを静的ライブラリとしてコンパイルすることができました:https ://github.com/android/platform_external_libpcapそしてlibpcap.aを入手しました

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のバージョンにはそれらがないようです。Jnetpcapの同じソースファイルは、Intelx86およびx64プラットフォーム用に問題なくコンパイルできます。

私は何か間違ったことをしていますか?それらの機能は本当に欠けていますか?

皆さんがこれを修正する方法を知っていることを願っています。ありがとう。

4

1 に答える 1

0

残念ながら、libpcapのバージョン0.9.8はこれらの機能をサポートしていないようです。バージョン>=1.0.0にはそれらが含まれています。したがって、現在、2つの可能性があります。Android.mkを古いバージョンに少し変更して新しいファイルを含めることにより、新しいバージョンのlibpcapをコンパイルします。または、jnetpcapを古いlibpcapをサポートするバージョンにダウングレードします。2007年以降の場合はLibpcap0.9.8なので、今年もjnetpcapを選択する必要があります。

于 2011-03-29T18:33:20.840 に答える