Hopefully my issue isn’t too silly but I’m having the following problem…
I’m importing a jar which contains the library JmDNS into my project. My project sets up to handle JmDNS like this…
setUp();
try {
peer = new PublicPeer("Aidan",6666,6667,this);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
private void setUp(){
android.net.wifi.WifiManager wifi =
(android.net.wifi.WifiManager)
getSystemService(android.content.Context.WIFI_SERVICE);
lock = wifi.createMulticastLock("Lock");
lock.setReferenceCounted(true);
lock.acquire();
}
where lock = android.net.wifi.WifiManager.MulticastLock lock; and PublicPeer peer;
When execution reaches peer = new PublicPeer("Aidan",6666,6667,this); the following error outputs…
11-13 13:12:47.644: W/dalvikvm(204): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
11-13 13:12:47.644: E/AndroidRuntime(204): Uncaught handler: thread main exiting due to uncaught exception
11-13 13:12:47.664: E/AndroidRuntime(204): java.lang.NoClassDefFoundError: javax.jmdns.JmDNS
11-13 13:12:47.664: E/AndroidRuntime(204): at com.daniel.business.publicchat.PeerAdvertiser.<init>(PeerAdvertiser.java:36)
11-13 13:12:47.664: E/AndroidRuntime(204): at com.daniel.business.publicchat.PublicPeer.<init>(PublicPeer.java:60)
11-13 13:12:47.664: E/AndroidRuntime(204): at com.chatr.org.PublicChat.onCreate(PublicChat.java:21)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.os.Handler.dispatchMessage(Handler.java:99)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.os.Looper.loop(Looper.java:123)
11-13 13:12:47.664: E/AndroidRuntime(204): at android.app.ActivityThread.main(ActivityThread.java:4363)
11-13 13:12:47.664: E/AndroidRuntime(204): at java.lang.reflect.Method.invokeNative(Native Method)
11-13 13:12:47.664: E/AndroidRuntime(204): at java.lang.reflect.Method.invoke(Method.java:521)
11-13 13:12:47.664: E/AndroidRuntime(204): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11-13 13:12:47.664: E/AndroidRuntime(204): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
11-13 13:12:47.664: E/AndroidRuntime(204): at dalvik.system.NativeStart.main(Native Method)
If my understanding of the above is correct it’s having problems located my JmDNS library however, it is being added. I’m 100% sure of it. The code of the JAR which I am importing can be found here: https://github.com/Ps2Fino/DSProject-Backend
EDIT
It appears to be an issue with JmDNS being added to Android as documented here: http://home.heeere.com/tech-androidjmdns.html I’ve attempted following that guide for “re-jaring” the JmDNS JAR file but I’m still having the same issue. It doesn’t appear to be working well with it.
I think JmDNS developers may have some issues regarding to publish/maintain their release and what even worse is poor documented, you can download jar from both SourceForge home page and Maven central repo, however, you can see that the jar file for the same release (latest version is 3.4.1) are different, the one from Maven central repository is more clean, probably this is what Heeere talked in his page about rejaring. I always use Maven build my Android application and so never tried the one from SourceForge, however, jar file downloaded from Maven works for me.