Ho iniziato a lavorare su un binding JmDNS per Xamarin.Android. Sono riuscito a ottenere il binding per costruire ma non posso fare riferimento dal mio codice. https://github.com/ytn3rd/monodroid-bindings/tree/master/JmDNSXamarin.Android Problemi di binding JmDNS
Il primo problema era che non esisteva alcuna classe IDNSListener a cui fare riferimento. Quindi ho aggiunto un'interfaccia parziale per questo. Ho la funzione di cui ha bisogno void updateRecord (DNSCache dnsCache, long now, DNSEntry record); ha commentato come si lamenterebbe di non essere in grado di fare riferimento a DNSCache o DNSEntry. (Credo di aver rimosso DNSCache e questo è il motivo)
Non sono sicuro che alcune delle cose che ho fatto fossero cattive, basta rimuovere i nodi per farlo compilare. Per instnace. Ho aggiunto questo per rimuovere i seguenti errori.
E: \ Users \ brads_000 \ Documenti \ GitHub \ ytn3rd \ MonoDroid-binding \ JmDNS \ attacchi \ obj \ Debug \ generato \ src \ Javax.Jmdns.Impl.JmDNSImpl.cs (24,24): Errore CS0738: 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry' non implementa il membro dell'interfaccia 'Java.Util.IMapEntry.Key'. 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry.Key' non può implementare 'Java.Util.IMapEntry.Key' perché non ha il tipo di ritorno corrispondente di 'Java.Lang.Object'. (CS0738) (JmDNS-Bindings) E: \ Users \ brads_000 \ Documents \ GitHub \ ytn3rd \ monodroid-bindings \ JmDNS \ bindings \ obj \ Debug \ generated \ src \ Javax.Jmdns.Impl.JmDNSImpl.cs (24, 24): Errore CS0738: 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry' non membro dell'interfaccia implementazione 'Java.Util.IMapEntry.Value'. 'Javax.Jmdns.Impl.JmDNSImpl.SubTypeEntry.Value' non può implementare 'Java.Util.IMapEntry.Value' perché non ha il tipo di ritorno corrispondente di 'Java.Lang.Object'. (CS0738) (JmDNS-Bindings)
Il problema proviene dalla classe Java.Util.IMapEntry. Ho pensato che l'azione corretta sarebbe stata quella di creare il mio Parital SubEntryType e quindi sovrascrivere la proprietà Key string, ma non lo avrebbe rilevato. Il mio prossimo tentativo era di fare questo.
java.lang.Object
Il che risolvere tale errore, ma sarebbe poi causare un errore con
E: \ Users \ brads_000 \ Documenti \ GitHub \ ytn3rd \ MonoDroid -bindings \ JmDNS \ bindings \ obj \ Debug \ generated \ src \ Javax.Jmdns.Impl.JmDNSImpl.cs (12,12): Errore CS1502: La migliore corrispondenza di metodo sovraccaricata per 'Android.Runtime.JNIEnv.NewString (string) 'ha alcuni argomenti non validi (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());
}
}
}
Ma ancora una volta, non vuole scegliere questo nuovo metodo in su.
ho tolto javax.jmdns.impl.DNSCache a causa di stessi errori con chiave/valore come sopra e,
E: \ Users \ brads_000 \ Documenti \ GitHub \ ytn3rd \ MonoDroid-binding \ JmDNS \ bindings \ obj \ Debug \ generated \ src \ Javax.Jmdns.Impl.DNSCache.cs (95,95): Errore CS0508: 'Javax.Jmdns.Impl.DNSCache.EntrySet()': il tipo restituito deve be 'System .Collections.ICollection 'per far corrispondere il membro sottoposto a override ' Java.Util.AbstractMap.EntrySet()'(CS0508) (JmDNS-Associazioni)
che mi sembrava di avere fissato con
System.Collections.ICollection
Anche se è quello che Stava già tornando.
public override globale :: System.Collections.Generic.ICollection entrySet()
In ogni caso, qualsiasi aiuto sarebbe apprezzato per ottenere questa libreria impressionante attivo e funzionante :)
Quale versione di JmDNS e Xamarin stai utilizzando? – noobie
Xamarin Studio 5 (build 878). Xamarin.Android v4.12.4. jmdns v3.4.1. –