希望我的问题不是太愚蠢,但我遇到了以下问题......
我正在将一个包含库 JmDNS
的 jar 导入到我的项目中。我的项目设置为像这样处理 JmDNS...
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();
}
其中 lock = android.net.wifi.WifiManager.MulticastLock lock;
和 PublicPeer peer;
当执行到 peer = new PublicPeer("Aidan",6666,6667,this);
时输出以下错误...
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)
如果我对上述内容的理解是正确的,那么我的 JmDNS 库就会出现问题,但是,它正在被添加。我百分百确定。我正在导入的 JAR 的代码可以在这里找到:https://github.com/Ps2Fino/DSProject-Backend
编辑
这似乎是将 JmDNS 添加到 Android 的问题,如下所述:http://home.heeere.com/tech-androidjmdns.html我已经尝试按照该指南“重新压缩”JmDNS JAR 文件,但我仍然遇到同样的问题。它似乎无法正常工作。
最佳答案
我认为 JmDNS 开发人员可能有一些关于发布/维护他们的版本的问题,更糟糕的是没有记录,你可以从这两个网站下载 jar SourceForge home page和 Maven central repo但是,你可以看到同一版本(最新版本是 3.4.1)的 jar 文件是不同的,来自 Maven 中央存储库的更干净,这可能是 Heeere 在他的页面中谈到的关于 rejaring 的内容。我总是使用 Maven 构建我的 Android 应用程序,因此从未尝试过来自 SourceForge 的应用程序,但是,从 Maven 下载的 jar 文件对我有用。
关于java - 安卓异常 : 'java.lang.NoClassDefFoundError: javax.jmdns.JmDNS' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111827/