Ich begann die Arbeit an einer JmDNS Bindungen für Xamarin.Android. Ich habe es geschafft, die Bindung zum Erstellen zu bekommen, aber ich kann nicht von meinem Code aus darauf verweisen. https://github.com/ytn3rd/monodroid-bindings/tree/master/JmDNSXamarin.Android JmDNS Bindungsprobleme
Die erste Frage, die ich hatte war, gab es keine IDNSListener-Klasse zu verweisen. Also habe ich eine partielle Schnittstelle dafür hinzugefügt. Ich habe die Funktion, die es benötigt, void updateRecord (DNSCache dnsCache, lang jetzt, DNSEntry-Datensatz); Auskommentiert, da es sich beschweren würde, nicht auf DNSCache oder DNSEntry verweisen zu können. (Ich glaube, ich DNSCache entfernt und das ist warum)
Nicht sicher, ob einige der Dinge, die ich getan habe, waren schlecht, nur Entfernen von Knoten, um es zu kompilieren. Für den Fall. Ich habe dies hinzugefügt, um folgende Fehler zu entfernen.
E: \ Benutzer \ brads_000 \ Dokumente GitHub \ \ ytn3rd \ monodroid-Bindungen \ JmDNS \ Bindungen \ obj \ Debug \ erzeugt \ src \ Javax.Jmdns.Impl.JmDNSImpl.cs (24,24): Fehler CS0738: 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry' implementiert nicht Interface Member 'Java.Util.IMapEntry.Key' implementieren. 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry.Key' kann 'Java.Util.IMapEntry.Key' nicht implementieren, da es nicht den übereinstimmenden Typ 'Java.Lang.Object' vom Typ zurückgibt. (CS0738) (JmDNS-Bindungen) E: \ Benutzer \ brads_000 \ Dokumente \ GitHub \ ytn3rd \ monodroid-bindings \ JmDNS \ bindings \ obj \ Debug \ generierte \ src \ Javax.Jmdns.Impl.JmDNSImpl.cs (24, 24): Fehler CS0738: 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry' implementiert nicht Interface Member 'Java.Util.IMapEntry.Value'. 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry.Value' kann 'Java.Util.IMapEntry.Value' nicht implementieren, da der Rückgabetyp von 'Java.Lang.Object' nicht vorhanden ist. (CS0738) (JmDNS-Bindungen)
Problem ist von der Java.Util.IMapEntry-Klasse. Ich dachte, dass korrekte Handlung sein würde, meinen eigenen paritalen SubEntryType zu schaffen und dann die Schnur Schlüsseleigenschaft zu überschreiben, aber sie würde es nicht aufheben. Mein nächster Versuch war, dies zu tun.
java.lang.Object
Welche diesen Fehler beheben wäre, würde aber dann einen Fehler verursachen mit
E: \ Benutzer \ brads_000 \ Dokumente \ GitHub \ ytn3rd \ monodroid -bindings \ JmDNS \ Bindings \ Obj \ Debug \ generierte \ src \ Javax.Jmdns.Impl.JmDNSImpl.cs (12,12): Fehler CS1502: die beste überladene Methodenübereinstimmung für 'Android.Runtime.JNIEnv.NewString (string) 'hat einige ungültige Argumente (CS1502) (JmDNS-Bind Ings)
static IntPtr n_GetKey (IntPtr jnienv, IntPtr native__this)
{
global::Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry __this = global::Java.Lang.Object.GetObject<global::Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
return JNIEnv.NewString (__this.Key);
}
namespace Javax.Jmdns.Impl
{
public partial class SubTypeEntry
{
static IntPtr n_GetKey (IntPtr jnienv, IntPtr native__this)
{
global::Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry __this = global::Java.Lang.Object.GetObject<global::Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
return JNIEnv.NewString(__this.Key.ToString());
}
}
}
Aber noch einmal, es will nicht diese neue Methode holen.
Ich entfernte javax.jmdns.impl.DNSCache wegen gleichen Fehler mit Schlüssel/Wert wie oben und
E: \ Benutzer \ brads_000 \ Dokumente \ GitHub \ ytn3rd \ monodroid-Bindungen \ JmDNS \ bindings \ obj \ Debug \ generiert \ src \ Javax.Jmdns.Impl.DNSCache.cs (95,95): Fehler CS0508: 'Javax.Jmdns.Impl.DNSCache.EntrySet()': Rückgabetyp muss 'System sein .Collections.ICollection 'zum Überschreiben des Elements ' Java.Util.AbstractMap.EntrySet()‘(CS0508) (JmDNS-Bindungen)
Was ich zu haben schien fixiert mit
System.Collections.ICollection
Auch wenn es, was es ist war schon wieder da.
public override global :: System.Collections.Generic.ICollection entrySet()
Wie auch immer, wäre jede Hilfe dankbar sein, um diese fantastische Bibliothek bis zu bekommen und läuft :)
Welche Version von JmDNS und Xamarin verwenden Sie? – noobie
Xamarin Studio 5 (Build 878). Xamarin.Android v4.12.4. jmdns v3.4.1. –