0

mit entschied ich unterstrichen Effect für Label hinzuzufügen, und tat Schritt für Schritt von here, aber aus irgendeinem Grund, wenn ich Label mit diesem Effect, meine App stürzt auf Android und iOS. Bei Diagnoseprotokollen gibt es immer noch keine Nachrichten, die mir sagen könnten, wo das Problem liegt. Eigentlich fängt es gerade an, meine View mit dieser Label zu rendern, und nachdem meine App nicht aktiv wird, öffnet Telefon seinen Hauptbildschirm, und in VS stoppt das Debuggen sofort. In Android Geräte Protokolle fand ich diese:Nullpointer wenn Effekte mit Xamarin

enter image description here in iOS-Gerät Protokolle:

enter image description here

Der Code, um den Code aus dem obigen Link ähnlich ist. Ich habe schon versucht, eine Ursache zu finden, und eigentlich habe ich keine. Ich habe versucht, Hardcore-Namen. Außerdem wurde keiner der Breakpoints in Klassen- oder plattformspezifischen Klassen erreicht. Wenn ich zum Beispiel ResolutionGroupName Attribut kommentieren, wird die App funktionieren und Label wird angezeigt, aber sicher ohne eine Unterstreichung.

UPDATE

Sorry, war vielleicht iOS Screenshot mit einem Fehler nicht auf die aktuelle Ausgabe. Aber ich habe eine, die wahrscheinlich ist:

enter image description here

+0

Fügen Sie Ihren Code hinzu, es wäre einfacher, Ihnen zu helfen. –

+0

Was ist ein Punkt? Es wird schwieriger sein, die Frage zu lesen. Ich habe keinen spezifischen Code hinzugefügt. Ich habe nur Code aus dem obigen Link hinzugefügt. –

+0

Setzen Sie einige Breakpoints in den Effekt, sehe ich einige Zeilen wie 'args.PropertyName == Label.TextProperty.PropertyName' in der' OnElementPropertyChanged' Methode. Stellen Sie sicher, dass "args" nicht "null" ist. –

Antwort

3

Wenn Sie den gleichen Code aus dem Blog verwenden, stellen Sie sicher, dass die plattformspezifische Effekte Definition richtig geschrieben werden.

Ex in Android:

[assembly: ResolutionGroupName(NameSpace.SharedEffectName.EffectNamespace)] 
[assembly: ExportEffect(typeof(NameSpace.Droid.UnderlineEffect), nameof(Namespace.UnderlineEffect))] 

dies den Fehler beheben sollte.

+0

Danke. Problem war, dass es keine Freigabe gibt, welcher Typ in ExportEffect sein sollte. Ich habe PCL UnderlineEffect anstelle der Plattform verwendet. Ich habe das schon mal probiert, aber es gab andere Probleme, also habe ich das nicht beachtet. –

+0

Wenn _would_ nützlich gewesen wäre, um Ihren Code zu posten und da _was_ ein Unterschied ..;) –

+0

Nur um zu klären, falls jemand anderes dieses Problem hat und nicht sicher ist, was im obigen Code anders ist, notieren Sie den * Namespace * zur Verfügung gestellt zu "ExportEffect" - es ist sicherzustellen, dass die referenzierte Klasse die plattformspezifische Klasse (z. B. im "iOS" - oder "Droid" -Namespace) und nicht die Forms/Basisklasse ist. – Pete

Verwandte Themen