Ich habe mein Xamarin.Forms-Paket auf das neueste (2.3.4.224) in allen meinen Projekten aktualisiert (Plattform + geteilt) und es scheint, dass ich jetzt nicht mehr Device.OS
oder TargetPlatform
enum verwenden sollte, da sie veraltet sind.
Der Compiler klagt wegen dieser Zeilen:
%Vor%Es heißt:
"Device.OS ist veraltet. Verwenden Sie stattdessen RuntimePlatform"
So weit, so gut, jetzt möchte ich das beheben und ich habe versucht zu verwenden:
%Vor%Aber es wirft eine Laufzeitausnahme auf. Hier ist der Stacktrace
04-08 14: 57: 34.812 I / MonoDroid (3782): UNGEFANGENE AUSNAHME: 04-08 14: 57: 34.824 I / MonoDroid (3782): System.TypeInitializationException: Der Typinitialisierer für 'Mob.ApiCommunication' hat eine Ausnahme ausgelöst. --- & gt; System.MissingMethodException: Die Methode 'Xamarin.Forms.Device.get_RuntimePlatform' wurde nicht gefunden. 04-08 14: 57: 34.824 I / MonoDroid (3782): --- Ende des inneren Ausnahme-Stacks Spur --- 04-08 14: 57: 34.824 I / MonoDroid (3782): um (Wrapper verwaltet-zu-nativ) System.Object: __ icall_wrapper_mono_generic_class_init (intptr) 04-08 14: 57: 34.824 I / MonoDroid (3782): um Mob.Views.Public.LoginViewModel.RestoreState (System.Collections.Generic.IDictionary'2 [TKey, TValue] Wörterbuch) [0x00001] in C: \ Benutzer ... \ Quelle ... \ LoginViewModel.cs: 52 04-08 14: 57: 34.824 I / MonoDroid (3782): bei Mob.App.OnStart () [0x00001] in C: \ Benutzer ... \ App.xaml.cs: 39 04-08 14: 57: 34.824 I / MonoDroid (3782): um Xamarin.Forms.Application.SendStart () [0x00000] in C: \ BuildAgent2 \ Arbeit \ ca3766cfc22354a1 \ Xamarin.Forms.Core \ Application.cs: 228 04-08 14: 57: 34.824 I / MonoDroid (3782): um Xamarin.Forms.Platform.Android.FormsAppCompatActivity + d__43.MoveNext () [0x0003b] in C: \ BuildAgent2 \ Arbeit \ ca3766cfc22354a1 \ Xamarin.Forms.Platform.Android \ AppCompat \ FormsAppCompatActivity.cs: 426 04-08 14: 57: 34.824 I / MonoDroid (3782): --- Ende des Stack-Trace von früherer Ort, wo die Ausnahme geworfen wurde --- 04-08 14: 57: 34.824 I / MonoDroid (3782): um System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 04-08 14: 57: 34.824 I / MonoDroid (3782): um System.Runtime.CompilerServices.AsyncMethodBuilderCore.m__0 (System.Object state) [0x00000] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1018 04-08 14: 57: 34.824 I / MonoDroid (3782): um Android.App.SyncContext + c__AnonStorey0. & Lt; & gt; m__0 () [0x00000] in /Users/builder/data/lanes/4468/b16fb820/source/xamarin-android/src/Mono.Android/Android.App/SyncContext.cs:35 04-08 14: 57: 34.824 I / MonoDroid (3782): um Java.Lang.Thread + RunnableImplementor.Run () [0x0000b] in /Users/builder/data/lanes/4468/b16fb820/source/xamarin-android/src/Mono.Android/Java.Lang/Thread.cs:36 04-08 14: 57: 34.824 I / MonoDroid (3782): um Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00009] in /Users/builder/data/lanes/4468/b16fb820/source/monodroid/src/Mono.Android/platforms/android-25/src/generated/Java.Lang.IRunnable.cs:81 04-08 14: 57: 34.824 I / MonoDroid (3782): at (wrapper dynamic-method) System.Object: 88db5e57-5ac7-4ba4-a574-4ec5eaf704fd (intptr, intptr)
Fehle ich etwas mit der Verwendung von RuntimePlatform? Ich habe mich umgesehen, aber derzeit verwendet jede Dokumentation / Beispiel in Bezug auf die Device
-Klasse die veralteten Mitglieder.
Ich kam mit einer Lösung heraus. Was seltsam ist, ist, dass ich, bevor ich auf SO postete, dies bereits für meine Xamarin-Projekte getan habe und es keinen Effekt hatte. Aber dieses Mal, nach dem Lesen dieses Threads in Xamarin Foren: Ссылка das ist Was ich getan habe:
Ich habe VisualStudio geschlossen, alle "bin" & amp; "obj" Ordner von all Projekte in meiner Lösung , dann VS neu gestartet und dann gereinigt & amp; umgebaute Lösung.
Jetzt gibt Debug.WriteLine(Device.RuntimePlatform);
die "Android" Zeichenfolge wie erwartet zurück !,
Xamarin.Forms-2.3.4.224 hat die Bedingung geändert Überprüfung von:
%Vor%An:
%Vor%hvaughan3s Kommentar zum OP ist, was es für mich getan hat. Stellen Sie sicher, dass nicht nur Ihre PCL, sondern auch Ihre Android / iOS / etc-Projekte ihre Pakete aktualisiert haben. Dann machen Sie eine vollständige Reinigung und bauen Sie von dort folgende OP angenommene Antwort.
Tags und Links c# xamarin.forms xamarin portable-class-library