title: Android Exception: 'java.lang.NoClassDefFoundError: javax.jmdns.JmDNS'
body: <p>Hopefully my issue isn't too silly but I'm having the following problem...</p>
  
  <p>I'm importing a jar which contains the library <code>JmDNS</code> into my project. My project sets up to handle JmDNS like this...</p>
  
  <pre><code>      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();
         }
  </code></pre>
  
  <p>where <code>lock =   android.net.wifi.WifiManager.MulticastLock lock;</code> and <code>PublicPeer peer;</code></p>
  
  <p>When execution reaches <code>peer = new PublicPeer("Aidan",6666,6667,this);</code> the following error outputs...</p>
  
  <pre><code> 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.&lt;init&gt;(PeerAdvertiser.java:36)
   11-13 13:12:47.664: E/AndroidRuntime(204):     at com.daniel.business.publicchat.PublicPeer.&lt;init&gt;(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)
  </code></pre>
  
  <p>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: <a href="https://github.com/Ps2Fino/DSProject-Backend" rel="nofollow">https://github.com/Ps2Fino/DSProject-Backend</a></p>
  
  <p><strong>EDIT</strong></p>
  
  <p>It appears to be an issue with JmDNS being added to Android as documented here: <a href="http://home.heeere.com/tech-androidjmdns.html" rel="nofollow">http://home.heeere.com/tech-androidjmdns.html</a> 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.</p>