与jmdns.jar通信

时间:2014-07-25 13:09:07

标签: bonjour zeroconf jmdns

我正在使用jmdns库来发现网络中其他设备的mDNS服务广告。我使用的是Android 4.2。我已经从jmdns官方网站下载了演示应用程序,AndroidDnssdDiscoveryEclipse应用程序正在崩溃...

jmdns = JmDNS.create();

这是日志..

07-25 18:15:57.343: W/dalvikvm(26977): threadid=1: thread exiting with uncaught exception (group=0x41526930)
07-25 18:16:11.703: D/dalvikvm(26977): Debugger has detached; object registry had 480 entries
07-25 18:16:11.703: I/dalvikvm(26977): ignoring registerObject request in thread=1
07-25 18:16:11.703: I/dalvikvm(26977): ignoring registerObject request in thread=1
07-25 18:16:11.726: E/AndroidRuntime(26977): FATAL EXCEPTION: main
07-25 18:16:11.726: E/AndroidRuntime(26977): java.lang.NoClassDefFoundError: javax.jmdns.JmDNS
07-25 18:16:11.726: E/AndroidRuntime(26977):    at com.heeere.android.dnssdtuto.DnssdDiscovery.setUp(DnssdDiscovery.java:44)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at com.heeere.android.dnssdtuto.DnssdDiscovery.access$0(DnssdDiscovery.java:38)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at com.heeere.android.dnssdtuto.DnssdDiscovery$1.run(DnssdDiscovery.java:27)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at android.os.Handler.handleCallback(Handler.java:725)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at android.os.Looper.loop(Looper.java:137)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at android.app.ActivityThread.main(ActivityThread.java:5061)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at java.lang.reflect.Method.invokeNative(Native Method)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at java.lang.reflect.Method.invoke(Method.java:511)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-25 18:16:11.726: E/AndroidRuntime(26977):    at dalvik.system.NativeStart.main(Native Method)
07-25 18:16:11.796: D/dalvikvm(26977): GC_CONCURRENT freed 237K, 13% free 2560K/2932K, paused 5ms+9ms, total 80ms
07-25 18:21:11.921: I/Process(26977): Sending signal. PID: 26977 SIG: 9

这里(jmdns.jar not working on android 4.0 or later),提到jmdns.jar不适用于Android 4.0或更高版本,但我在我的设备上使用了ZeroConf Browser(使用jmdns)并且运行正常。

在调试应用程序时我发现我的应用程序找不到jmdns.jar文件。我没有对jmdns.jar文件做任何事情接受我从应用程序目录中删除了原始的jmdns.jar文件(1kb)而不是它我已经把jmdns.jar文件(200kb)随附下载。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 从SourceForge.net下载的jmsdn-3.4.1.jar不是为Dalvik vm(Android)编译的。

我解决了从SourceForge.net下载源文件并重建jmdns.jar以与Android项目一起使用。