2017-03-29 2 views
0

bekommt Ich versuche Xamarin Forms Previewer in meinem Projekt mit MVVM Prism und Unity Container zu verwenden, und ich bin immer diese Fehlermeldung:Xamarin Forms Previewer Argument auf UnityContainer.RegisterInstance

enter image description here

Hier ist der extrahierte Stapel Referenz:

Xamarin.VisualStudio.ActivationManager|Error|0| The renderer encountered an error while rendering this file: System.ArgumentNullException: Value cannot be null. Parameter name: instance

at Microsoft.Practices.Unity.UnityContainer.RegisterInstance (System.Type t, System.String name, System.Object instance, Microsoft.Practices.Unity.LifetimeManager lifetime) in :0

at Microsoft.Practices.Unity.UnityContainerExtensions.RegisterInstance[TInterface] (Microsoft.Practices.Unity.IUnityContainer container, TInterface instance) in :0

at SellerNS.Bootstrapper.RegisterTypes() in C:\Users\myrepo\Bootstrapper.cs:48

at Prism.Unity.UnityBootstrapper.Run() in :0

at Prism.Bootstrapper.Run (Xamarin.Forms.Application app) in :0

at SellerNS.App..ctor() in C:\Users\myrepo\Seller\App.xaml.cs:20

at at offset 12 in file:line:column :0:0

at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) in /Users/builder/data/lanes/4009/3a62f1ea/source/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:661

ich verwende:

  • Visual Studio 2015 - 14.0.25424.00
  • Update 3 JDK 1.8.0_121
  • Xamarin 4.3.0.789-cycle9
  • Prism.Forms 6.0.1
  • Prism.Unity 6.1.1
  • Unity 4.0. 1

Irgendeine Idee, wie man es repariert?

+0

Nicht die Art von Hilfe, die Sie erwartet haben, aber ... funktioniert Ihr Previewer ohne Unity (oder diese Prismen-Komponenten)? Aus meiner Erfahrung ist es keine leichte Aufgabe, es zur Arbeit zu bringen. Das Problem ist möglicherweise nicht Unity bezogen. Ich empfehle Ihnen, eine Hello World-App zu erstellen und zu überprüfen, ob die Vorschau mit Ihren aktuellen sdk/xamarin-DLLs ausgeführt wird, um dies aus der Liste zu überprüfen. – Veverke

+0

@Veverke ja, die Vorschau funktioniert gut in einem Hello World-Projekt. – danieljaguiar

+0

Versucht, als Betrüger der kanonischen NRE-Frage zu schließen. Ihr Problem besteht darin, dass Sie in einem Konstruktor arbeiten. Es wird zur Entwurfszeit aufgerufen, aber da Sie nicht in Ihrer EXE gehostet werden, ist etwas, das Sie verwenden möchten, null. Sie müssen 1) alle im Designer geladenen Typen untersuchen 2) ihre Konstruktoren untersuchen 3) Null-Überprüfung durchführen, versuchen/fangen und eine umbrochene Ausnahme werfen oder prüfen, ob Sie sich im Design-Modus befinden (unsicher wie xamarin) um dies zu tun) vor jeder Arbeit. Arbeiten Sie auch nicht in Ihren Konstruktoren. – Will

Antwort

0

Ich war mit der Xamarin einen ähnlichen Fehler erhalten Forms Previewer wenn Prism verwendet und es wurde durch Hinzufügen eines leeren Standardkonstruktor in App.xaml.cs aufgelöst wie hier angegeben: https://github.com/PrismLibrary/Prism/issues/1037

So Zugabe public App() : this(null) { } zu App.xaml .cs arbeitete für mich.

Nachdem ich die oben beschriebene Änderung vorgenommen hatte, musste ich die gesamte Lösung säubern, neu erstellen und dann Visual Studio neu starten, bevor ich den Xamarin.Forms Previewer erneut starten konnte, damit alles wie gewünscht funktionierte.