PRÄAMBEL: Seit SDK Level 16 verfügt Android über eine eingebaute Zeroconf-Implementierung. Es sei denn, die Kompatibilität mit dem Bronzezeitalter ist ein Problem. Verwenden Sie jmDNS nicht mehr, sondern verwenden Sie stattdessen NsdManager
.
PRÄAMBEL # 2: frühe Versionen von NsdManager sind voller Störungen, siehe SO Frage getSystemService (Context.NSD_SERVICE) friert den 5.0 Emulator ein und die verknüpften Fehlersätze.
Ich habe jmDNS 3.4.1 zu meinem Android-Projekt hinzugefügt. Kopierte die JAR unter lib
, dann unter "Java BuildPath" / Bibliotheken eine Referenz hinzugefügt.
Jetzt schlägt mein Build mit der folgenden Meldung in der Konsole fehl:
%Vor%Und wenn ich mir den JAR-Inhalt im Paket-Explorer unter referenzierte Bibliotheken anschaue, sehe ich, dass jede Klasse unter jedem Paket in der jmdns.jar doppelt aufgelistet ist. Zwei Kopien von JmDNS.class, zwei Kopien von JmmDNS.class und so weiter.
Irgendwelche Ideen, was mit dem Glas los ist? Ich benutze andere Gläser im Projekt, keiner von ihnen verhält sich so. Versuchte Reinigung ein paar Mal, entfernt und neu hinzugefügt der JAR - der gleiche Effekt.
Vielleicht ist es erwähnenswert, dass es sich um ein Bibliotheksprojekt handelt, und der Fehler tritt auf, wenn ich die App erstelle, die auf die Bibliothek verweist.
Sie haben wahrscheinlich die .jar von SourceForge verwendet. Diese Version enthält alle .class-Dateien zweimal in der .jar-Datei und dies führt zu Ihrem Fehler.
Versuchen Sie es mit dem .jar von Maven Ссылка , das sollte funktionieren, ich habe es Anfang des Monats benutzt.
Sehen Sie, ob die Antwort hier hilft.
Im Allgemeinen ist die JAR-Datei von der SourceForge-Startseite fehlerhaft und funktioniert nicht mit Android. Versuchen Sie es mit die eine von Maven Central Repository oder die in diesen Blogbeitrag .
Tags und Links android dependency-management jmdns