Xamarin.forms: [Bug] Die Android-App stürzt seit dem Update auf Xamarin Forms v4 ab

Erstellt am 20. Sept. 2019  ·  56Kommentare  ·  Quelle: xamarin/Xamarin.Forms

Seit dem Update auf 4.2.0.815419 wird bei LoadApplication (neue App (dbPath, Builder)) die folgende Ausnahme ausgelöst. innerhalb von MainActivity.cs

Ich habe auch v4.3.0.819712-pre2 ausprobiert, falls ein Fix enthalten war.

Ich muss auf 3.5.0.129452 zurücksetzen, aber ich dachte, es wäre nützlich, das Problem zu protokollieren.

Die Verknüpfung ist auf Keine eingestellt. UWP App funktioniert.

09-25 13:17:14.076 E/mono    ( 5126): 
09-25 13:17:14.076 E/mono    ( 5126): Unhandled Exception:
09-25 13:17:14.076 E/mono    ( 5126): System.TypeLoadException: Could not load type of field 'Xamarin.Forms.Platform.Android.RendererPool:_freeRenderers' (0) due to: Could not resolve type with token 01000275 from typeref (expected class 'System.Collections.Generic.Stack`1' in assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e') assembly:mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e type:System.Collections.Generic.Stack`1 member:(null)
09-25 13:17:14.076 E/mono    ( 5126):   at (wrapper dynamic-method) System.Object.7(intptr,intptr,intptr)
09-25 13:17:14.076 E/mono    ( 5126):   at (wrapper native-to-managed) System.Object.7(intptr,intptr,intptr)
09-25 13:17:14.076 E/mono-rt ( 5126): [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type of field 'Xamarin.Forms.Platform.Android.RendererPool:_freeRenderers' (0) due to: Could not resolve type with token 01000275 from typeref (expected class 'System.Collections.Generic.Stack`1' in assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e') assembly:mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e type:System.Collections.Generic.Stack`1 member:(null)
09-25 13:17:14.076 E/mono-rt ( 5126):   at (wrapper dynamic-method) System.Object.7(intptr,intptr,intptr)
09-25 13:17:14.076 E/mono-rt ( 5126):   at (wrapper native-to-managed) System.Object.7(intptr,intptr,intptr)
high regression Android bug

Hilfreichster Kommentar

Ich habe festgestellt, dass System.Collections.Generic.Queue in verfügbar ist

C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ System.dll

und

C: \ Programme (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Es ist nicht verfügbar in

C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Wenn also eine DLL, die auf Queue basiert, mit VS2019 kompatibel ist und auf VS2017 ausgeführt wird, wird eine Ausnahme ausgelöst, die Queue kann nicht aus mscorlib geladen werden.
Ich denke, nicht nur Queue, sondern auch andere Klassen in Collections.Generic Namespace könnten das gleiche Problem haben.

Alle 56 Kommentare

Auf den ersten Blick scheint dies eine Art Caching-Problem zu sein. Stellen Sie sicher, dass Sie alle Projekte auf dieselbe Version von Xamarin.Forms aktualisiert haben, und bereinigen Sie dann die Lösung. Um sicherzugehen, löschen Sie die Ordner bin und obj auch aus jedem der Projekte im Dateisystem. Entfernen Sie auch die App aus dem Emulator oder Gerät.

Führen Sie einen Neuaufbau durch, führen Sie ihn aus und hoffentlich sollte alles gelöst sein. Hast du schon eines dieser Dinge ausprobiert?

Ich stellte fest, dass ich alle vorhandenen 3.0-Apps auf dem Telefon deinstallieren und erneut sauber bereitstellen und Ihre Lösung erstellen musste. Dann sollte dies in Ordnung sein. Könnte gut sein, dass das Nachladen ein paar Mal für mich passiert ist, stellen Sie also sicher, dass dies deaktiviert ist.

Hallo @jfversluis, diese Probleme treten tatsächlich auch bei Entwicklern und Appcentern auf. Beide Bereiche bereinigen den Arbeitsbereich vor jedem Build, von dem ich glaube

Die Suche nach dieser Fehlermeldung scheint mit den Android-Targeting- und Support-Paketen zu tun zu haben. Haben Sie diese auch aktualisiert? Können Sie weitere Informationen darüber bereitstellen, welche Pakete genau mit welcher Version installiert sind und auf welche Android-Version Sie abzielen möchten?

Ja, ich habe mein API-Level auf Andriod 9 aktualisiert

Am Fr, 20. September 2019 um 15:46 Uhr Gerald Versluis [email protected]
schrieb:

Die Suche nach dieser Fehlermeldung scheint mit Google zu tun zu haben
Targeting- und Support-Pakete. Haben Sie diese auch aktualisiert? Könntest du
Geben Sie weitere Informationen darüber, welche Pakete genau mit welchen installiert werden
Version und auf welche Android-Version möchten Sie abzielen?

- -
Sie erhalten dies, weil Sie kommentiert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/xamarin/Xamarin.Forms/issues/7602?email_source=notifications&email_token=ABK34HK3EWZVVCQWHUGBMZLQKTO3PA5CNFSM4IYVWRJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7G5L6I#issuecomment-533583353 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/ABK34HLYSFLSUXVEIB5H67LQKTO3PANCNFSM4IYVWRJA
.

- -

Grüße
David Buckley
M: 07871 884 546

Ich habe das gleiche Problem nach dem Update auf die neueste Version, in der vorherigen Version funktioniert alles gut, aber wenn ich das Xamarin aktualisiere, tritt der Fehler auf.

Kann jemand, bei dem dieses Problem auftritt, ein kleines Projekt beifügen, das dieses Problem demonstriert? Vielen Dank!

Ich sehe jemanden mit dem gleichen Problem hier auf SO: https://stackoverflow.com/questions/58032635/updating-nuget-caused-exception-unhandled-system-typeloadexception

Es scheint mit Karten zu tun zu haben? Kann jemand dies überprüfen? Und was Samantha gesagt hat, eine Reproduktion wäre super genial!

Ich habe genau das gleiche Problem, sowohl in Android als auch in iOS. Unter Android wird die App erstellt und stürzt beim Start unter iOS ab. Die App wird nicht erstellt (wenn ein realer Gerätesimulator erstellt wird, funktioniert die Erstellung einwandfrei). Ich erhalte den Fehler, auf den oben im Link "Stapelüberlauf" in Bezug auf System.Collections.Generic.Stack`1 verwiesen wird

Das Problem besteht nicht, wenn ich auf 4.2.0.778463 zurückgreife

Ich bin nicht sicher, ob es sich um Karten handelt, aber meine App enthält das Karten-Nuget-Paket.

Ich benutze keine Karten, das kommt sogar in einem neuen Projekt vor

@KennyMack Könntest du das in ein Reproduktionsprojekt

Ich habe den gleichen Fehler beim Upgrade auf 4.2 SR2 erhalten.
Ich habe mehrere Vorschläge ausprobiert, alle Nuget-Pakete aktualisiert, aber die App ist immer noch abgestürzt.
Ich habe eine neue leere App gestartet (in 4.0), funktioniert gut!
Auf 4.2 SR2 aktualisiert, abgestürzt!
Dann habe ich Visual Studio (16.2.5) Problem war weg !!

@KennyMack Könntest du das in ein Reproduktionsprojekt

Ich habe einfach eine neue leere App erstellt und in VS2017 15.9 auch eine TypeLoadException (aber ohne Details) erhalten

image

Dann habe ich Visual Studio (16.2.5) Problem war weg !!

Mit VS2019 kann ich die App auch problemlos kompilieren und ausführen.

@jfversluis Irgendwelche Ideen, warum es für VS2017 fehlschlägt? Ist dies ein Mono-Problem mit VS2017 15.9?

@jfversluis Hier das Projekt, ich erstelle und aktualisiere das Xamarin auf Version 4.2.0.815419 und App stürzt beim Start ab
https://github.com/KennyMack/ExampleFail

Ich hatte das gleiche Problem mit AppCenter, auch mit 4.2.0.815419. Sowohl iOS- als auch Android-Builds sind mit derselben System.Collections.Generic.Stack-Nachricht "Erwartete Klasse" fehlgeschlagen.

Ich habe die Build-Konfiguration in AppCenter geändert, um Folgendes zu verwenden: SDK-Version: Xamarin.iOS 12.14 und Xcode-Version: 10.3.
Das Problem scheint jetzt verschwunden zu sein, seit ich diese Einstellungen in den iOS-Builds geändert habe (habe Android noch nicht ausprobiert).

@KennyMack Ich habe deinen Repro runtergezogen und alles funktioniert gut für mich

image

@KennyMack Ich habe deinen Repro runtergezogen und alles funktioniert gut für mich

Welchen VS benutzt du? Das Problem tritt nur 2017 und nicht 2019 auf

@KennyMack Ich habe deinen Repro runtergezogen und alles funktioniert gut für mich

image

Das ist seltsam, in meiner Version funktioniert das nicht.
Ich verwende Visual Studio 2017 Version 15.9.16.
muss ich noch etwas aktualisieren?

Mein Fehler

Es stürzt für mich auf VS 2017 ab: - /

Wir haben gerade unsere Build-Pipeline verschoben, um VS 2019 zu verwenden, also stöbere ich intern herum, um die oben genannten Ausnahmen zu sehen

Ich habe das gleiche Problem wie @ dannythomas13 sagte. Ursprünglich war meine Xamarin Forms-Version 3.4.0.1008975 und als ich sie auf 4.2.0.815419 aktualisierte, stürzt die App ab und zeigt dasselbe Problem. Sogar ich habe es in einem leeren Projekt versucht, es stürzt ab und gibt den gleichen Fehler. Mein vs ist vs Enterprise 2017 Version 15.9.13.

Ich habe das gleiche Problem wie @ dannythomas13 und @zimbabirbal sagten. Sie können es beheben, so dass es auch mit VS2017 funktioniert?

Ich habe festgestellt, dass System.Collections.Generic.Queue in verfügbar ist

C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ System.dll

und

C: \ Programme (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Es ist nicht verfügbar in

C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Wenn also eine DLL, die auf Queue basiert, mit VS2019 kompatibel ist und auf VS2017 ausgeführt wird, wird eine Ausnahme ausgelöst, die Queue kann nicht aus mscorlib geladen werden.
Ich denke, nicht nur Queue, sondern auch andere Klassen in Collections.Generic Namespace könnten das gleiche Problem haben.

Das iOS-Build auf VS2017 hat das gleiche Problem. Siehe # 7638.

Hatte den gleichen Fehler auf VS 16.0.3, aktualisiert auf die neueste Version (16.3.1) und das Problem ist behoben. #Magie

Wenn also eine DLL, die auf Queue basiert, mit VS2019 kompatibel ist und auf VS2017 ausgeführt wird, wird eine Ausnahme ausgelöst, die Queue kann nicht aus mscorlib geladen werden.
Ich denke, nicht nur Queue, sondern auch andere Klassen in Collections.Generic Namespace könnten das gleiche Problem haben.

Dies ist etwas, das das Xamarin.Android-Team unter @jonathanpeppers @brendanzagaeski ansehen sollte

Dies begann, weil wir unsere Build-Server von VS 2017 auf VS 2019 verschoben haben, das neuere Versionen von XA / XI / Mono-SDKs enthält. Wenn Sie gegen neuere Versionen dieser SDKs erstellen, funktionieren diese Versionen nicht mehr mit älteren Versionen.

Dies ist die spezifische Änderung, die diese Ausnahme auslöst: https://github.com/mono/mono/pull/11511

Die nächste Version von 4.2 wird gegen VS 2017 erstellt, sodass sie weiterhin für VS 2017 verwendet werden kann. Für 4.3 müssen Sie jedoch mindestens 16.3 haben

Der Grund dafür ist, dass die Anforderung in 4.3 buchstäblich mit jeder Plattform zu tun hat, für die Visual Studio 16 und / oder 16.3 erforderlich ist, um die neuesten SDKs zu verwenden

XCode11 erfordert 16.3
Für Android 10 ist 16.3 und für Android X mindestens 16.2 erforderlich
WinUI benötigt mindestens VS 2019, um die kompatibelsten SDKs zu verwenden

Bisher mussten wir nicht wirklich gegen die neueren SDKs bauen, aber jetzt müssen wir, um die neueren Frameworks zu unterstützen

Die nächste Version von 4.2 wird gegen VS 2017 erstellt, sodass sie weiterhin für VS 2017 verwendet werden kann. Für 4.3 müssen Sie jedoch mindestens 16.3 haben

ok, also werden wir Xamarin.Forms nicht mehr verwenden. VS2019 ist ein No Go. Tschüss. Tschüss und RIP Xamarin.

@ MagicAndre1981 Wir diskutieren immer noch Optionen. Wir haben uns noch nicht entschieden, VS2019 für 4.3 zu fordern.

Möchten Sie mitteilen, warum VS2019 ein "no go" ist? Was ist Ihr Zeitplan für ein Upgrade?

Vielen Dank!

Möchten Sie mitteilen, warum VS2019 ein "no go" ist?

wegen der kaputten Benutzeroberfläche (schreckliches modales Startfenster, dieses ruinierte "Dialogfeld" Neues Projekt "und das Benachrichtigungssymbol bei Buttom, wo ich es immer übersehen habe). VS2019 wiederholt die VS2012-Katastrophe

Es gibt auch einen Absturz unter iOS. Wird es auch durch die ältere Version von VS für Mac verursacht? Für mich schlägt dies unter Azure DevOps fehl, wo ich macOS X Mojave 10.14 als Agenten für einen Build ausgewählt habe.

Zweitens, dass dieses Problem Auswirkungen auf Build-Pipelines auf DevOps unter macOS 10.14 hat. Gibt es eine kurzfristige Lösung oder warten wir auf eine neue 4.2.X-Version?

Hallo,
Wir brauchen Hilfe und Rat.

Ich muss auf 4.2.0.815419 aktualisieren, um ein Problem mit der Image-URL zu beheben, die in früheren Versionen nicht funktioniert.
Ich sollte heute an einen Kunden liefern, konnte es aber nicht.
Ich möchte vermeiden, zu einer sehr alten Version von 4 zurückzukehren.

Jedoch den ganzen Tag versuchen, ios Build gegen 4.2.0.815419 zu bekommen
"Fehler beim Auflösen von" System.Collections.Generic.Stack`1 ". Versuchte alle möglichen Dinge ... und bekam verschiedene Fehler, die ich hier nicht erwähne, da dies die Dinge verwirren könnte.

Mit 4.2.0.815419 hat sich definitiv etwas geändert, und wir können unter iOS nicht mehr auf der Azure-Pipeline aufbauen.

Mein letzter funktionierender Build war die Verwendung von Mono 5_16 mit 4.1.0.709244

irgendwelche Vorschläge ?

Ich hatte das gleiche Problem.
Ich habe Xamarin Essentials installiert und nuget gebeten, Xamarin auf Version 4.2.0.815419 zu aktualisieren.
Ich ging zurück zu Version 4.2.0.778463 und es ging wieder an die Arbeit

Ich sehe das gleiche Problem wie bei @ developer9969 und @oliveiraugusto mit der Version 4.2.0.848062 .

MTOUCH: Fehler MT2002: Fehler beim Auflösen der Referenz "System.Collections.Generic.Stack`1" aus "mscorlib, Version = 2.0.5.0, Kultur = neutral, PublicKeyToken = 7cec85d7bea7798e"

Ich führe den iOS-Build mit dem folgenden Skript aus und spezifiziere die MONO SDK-Version und den Xcode

/ bin / bash -c "sudo $ AGENT_HOMEDIRECTORY / scripts / select-xamarin-sdk.sh 5_18_1"
/ bin / bash -c "sudo xcode-select -s /Applications/Xcode_10.2.1.app/Contents/Developer"

Problemumgehungen?

HI Team
Ich bekomme auch das gleiche Problem. Gibt es eine Lösung, von der wir erwarten können, dass sie mit Xamarin-Formularen auf VS 2017 funktioniert?

@ryanmendoza Um den Build der iOS-

@ryanmendoza

Zweitens, dass dieses Problem Auswirkungen auf Build-Pipelines auf DevOps unter macOS 10.14 hat. Gibt es eine kurzfristige Lösung oder warten wir auf eine neue 4.2.X-Version?

Es gibt jetzt tatsächlich eine neue Version. Behebt das Dinge für Sie?

Dies sollte in den neuesten Versionen von Xamarin.Forms behoben werden, die auf NuGet veröffentlicht wurden. Vielen Dank!

Dies sollte in den neuesten Versionen von Xamarin.Forms behoben werden, die auf NuGet veröffentlicht wurden.

Welche Versions- / Build-Nummer? Wie lange funktioniert XF für VS2017-Benutzer?

4.2.0.848062 und 4.3.0.851321-pre3 sind beide mit VS2017 kompatibel.

Ich kann bestätigen, dass die Verwendung der neuesten Builds (oben erwähnt) das gemeldete Problem behoben hat, ohne dass Sie Ihre vorhandenen Tools aktualisieren / ändern müssen.

4.2.0.848062 ... kompatibel mit VS2017.

danke, ich kann das bestätigen.

Es macht keinen Sinn, neue Versionen von Xamarin.Forms mit alten Werkzeugen arbeiten zu lassen. Personen, die alte Werkzeuge verwenden möchten, können weiterhin alte Versionen von Xamarin.Forms verwenden. Die Notwendigkeit, alte Werkzeuge zu unterstützen, würde die Entwicklung in einem Repo belasten, das bereits zu viele Entwicklungsprobleme aufweist.

Ich habe das gleiche Problem unter Xamarin.Forms.iOS Version 4.3.0.991211 unter MacOS Mojave

@samhouts Dieses Problem ist geschlossen, aber das Problem besteht immer noch ... Wo ist die offizielle Lösung, oder geben Sie uns zumindest die Problemumgehung, um dieses Problem zu beheben.

Sehen Sie sich das Build-Protokoll in Azure DevOps an:
image

_Projekttyp - Xamarin.iOS
Mono - 5.12.0
XCode - 10.2.1_

meine .yaml-Konfiguration in Azure DevOps

@beylkhanovdamir Welche Version von Xamarin.Forms verwenden Sie? Dies sollte nach den zuvor genannten Versionen nicht mehr passieren

@jfversluis Es passiert mir auch immer noch (Xamarin.Forms.iOS Version 4.3.0.991211 )

@ Sonic3R Sie verwenden VS2017 unter Windows? VSMac? Können Sie uns weitere Einzelheiten mitteilen?

Visual Studio für Mac, Version 8.3

@jfversluis Sie können meine .yaml-Konfiguration in DevOps

ps Ich verwende '_macOS-latest_' vmImage und XF-Version unten
image

@beylkhanovdamir haben Sie diesen Kommentar gesehen: https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment -537847507

Ich sehe, dass Sie die SDK-Version manuell einstellen und Xcode 10 verwenden. Vielleicht möchten Sie die Verwendung aktueller Versionen zusammen mit der neuesten Forms-Version prüfen.

@ Sonic3R Können Sie

Leute, ich habe festgestellt, dass das Hot-Reload aktiviert wird. Deaktivieren Sie das Hot-Reload und Ihr
App wird in Ordnung sein.

Am Di, 3. Dezember 2019 um 12:47 Uhr Gerald Versluis [email protected]
schrieb:

@beylkhanovdamir https://github.com/beylkhanovdamir hast du das gesehen ?
Kommentar: # 7602 (Kommentar)
https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment-537847507

Ich sehe, dass Sie die SDK-Version manuell einstellen und Xcode 10 verwenden.
Vielleicht möchten Sie die Verwendung aktueller Versionen zusammen mit den neuesten prüfen
Formularversion.

@ Sonic3R https://github.com/Sonic3R könnten Sie ein bisschen mehr teilen
Welche Fehler treten beim Erstellen in VSMac auf?

- -
Sie erhalten dies, weil Sie kommentiert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/xamarin/Xamarin.Forms/issues/7602?email_source=notifications&email_token=ABK34HN56WUZL3KRXAAKWVDQWZIPTA5CNFSM4IYVWRJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFZIBKQ#issuecomment-561152170 ,
oder abbestellen
https://github.com/notifications/unsubscribe-auth/ABK34HM2BQTF5PHNEBQVEFDQWZIPTANCNFSM4IYVWRJA
.

- -

Grüße
David Buckley
M: 07871 884 546

@ jfversluis

hast du diesen Kommentar gesehen: # 7602 (Kommentar)

Ja, ich habe es gesehen, aber ich kann es nicht, weil wir ein Projekt haben, bei dem die Ziel-FW .netstandard 2.0 ist (dh nicht 2.1, das mit .net Core 3.0 kompatibel ist), und in diesem Fall werde ich viele Kompilierungsfehler erhalten .
Aber vielleicht ist es vorerst wirklich der letzte Weg, um dieses Problem zu beheben

Hallo - Wenn die folgende Fehlermeldung in Visual Studio 2017 angezeigt wird, wird Xamarin.iOS 12.4.0.64 unterstützt. Bitte helfen Sie uns dabei, da dies unseren gesamten Bereitstellungsprozess blockiert hat.

C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.targets (795.3): Fehler MT2002: Fehler beim Auflösen von "System.Collections.Generic.Stack" `1" Referenz von "mscorlib, Version = 2.0.5.0, Kultur = neutral, PublicKeyToken = 7cec85d7bea7798e"

Diese Fehlermeldung wird NUR nach dem Paring mit einem Mac angezeigt, der über Xamarin.iOS, den neuesten xCode und Mono 5.18 verfügt.

Danke im Voraus

@ryanmendoza Um den Build der iOS-

Was bedeutet das überhaupt? Ich bin ziemlich verwirrt darüber. Haben Sie ein Beispiel für YAML, das Sie teilen könnten?

Was baue ich mit der .netcore-Aufgabe? Das iOS-Projekt .. wie? Mir fehlt eindeutig etwas.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen