AndroidApp und MySqlConnection funktionierten nicht connection.open

Lesezeit: 4 Minuten

Benutzer-Avatar
Trexano

Wenn ich versuche, die Verbindung zu öffnen, ist ein Fehler aufgetreten und ich sage:

System.TypeInitializationException: Der Typinitialisierer für „MySql.Data.MySqlClient.Replication.ReplicationManager“ hat eine Ausnahme ausgelöst.

Dies ist der Teil des Codes:

MySqlConnection _Conn;

public void Conectar()
{
    new I18N.West.CP1250();

    string SC;

    SC = "server = XXX; Port = 3306; database = XXX; user id = XXX; password = XXX; charset = utf8";

    _Conn = new MySqlConnection(SC);

    _Conn.Open();
}

  • Diese Ausnahme bedeutet normalerweise, dass der statische Konstruktor für ReplicationManager warf eine Ausnahme. Ohne die vollständige Ausnahmemeldung und Callstack aus das Ausnahme, wir werden Ihnen wahrscheinlich nicht helfen können. Es wäre auch hilfreich zu wissen, welche Version von MySql.Data Sie verwenden.

    – Bradley Grainger

    2. Mai 2018 um 19:38 Uhr

  • Ich weiß nicht, wie ich Ihnen die vollständige Ausnahmemeldung und den Callstack aus der Ausnahme zeigen soll. Können Sie mir bitte sagen, wie man das macht?

    – Trexano

    4. Mai 2018 um 14:42 Uhr

  • Versuchen Sie, nach anderen Stack Overflow-Antworten zum Debuggen einer TypeInitializationException zu suchen, z. B. stackoverflow.com/a/1604352

    – Bradley Grainger

    4. Mai 2018 um 15:31 Uhr

  • Dies ist die Ausnahme: “System.TypeInitializationException: The type initializer for ‘MySql.Data.MySqlClient.Replication.ReplicationManager’ warf eine Ausnahme. —> System.TypeInitializationException: The type initializer for ‘MySql.Data.MySqlClient.MySqlConfiguration’ hat eine Ausnahme ausgelöst. —> System.Configuration.ConfigurationErrorsException: Konfigurationssystem konnte nicht initialisiert werden —> System.PlatformNotSupportedException: Operation wird auf dieser Plattform nicht unterstützt.\n

    – Trexano

    9. Mai 2018 um 8:37 Uhr

  • Welche Version von MySql.Data verwenden Sie?

    – Bradley Grainger

    9. Mai 2018 um 14:03 Uhr

Wenn Sie Probleme mit Xamarin haben, sollten Sie Folgendes tun:

1) Entfernen Sie Referenz-Mysql-Daten

2) Referenz Xamarin.Mysql hinzufügen

Sie können Ihre Anrufe behalten (mit MySql.Data.MySqlClient;)

  • Dies löst auch die Ausnahme “…no constructor…” bei der Initialisierung. Erst jetzt (13.10.2019, Studio 2017) heißt das Paket nur noch “MySqlConnector”. Danke, Dennis!

    – BRebey

    14. Oktober 2019 um 5:25 Uhr

  • Xamarin.Mysql ist standardmäßig nicht verfügbar. Ich glaube, Sie haben andere NuGet-Pakete installiert, die diese Bibliothek erstellen und Ihnen deren Verwendung ermöglichen, aber sie ist nicht nativ oder in Xamarin enthalten. Wenn Sie bestätigen könnten, welche Bibliothek Sie verwenden, um diese Referenz zu verwenden und zu testen, oder wo Sie sie herunterladen können, wäre das großartig.

    – Windtor

    16. April 2021 um 9:38 Uhr

Es klingt wie die MySql.Data.MySqlClient.Replication.ReplicationManager Der statische Konstruktor versucht, die zu initialisieren System.Configuration.ConfigurationManager -Klasse, die auf Xamarin Android nicht unterstützt wird.

Um dies zu vermeiden, könnten Sie eine alternative MySQL-Client-Bibliothek verwenden, die diese Abhängigkeit nicht hat, wie z MySqlConnector auf NuGet.

Benutzer-Avatar
Stefan Baba

GELÖST

Verwenden Sie das Paket Nuget MySqlConnector statt MySql.Data

Ich verwende es und es ist auf Xamarin Android in Ordnung

https://www.nuget.org/packages/MySqlConnector/

Wiedersehen

  • Gibt es einen bestimmten Grund für die nicht übereinstimmenden Paketnamen? Der mit dem Punkt scheint nicht zu existieren und ein wenig irreführend imo.

    – Nö

    29. Dezember 2020 um 18:06 Uhr

Benutzer-Avatar
Windtor

Verwenden Sie dieses Oracle-Paket (https://www.nuget.org/packages/MySql.Data/), nicht wahr? Dann erhalten Sie diesen Teil der Ausnahmemeldung:

System.PlatformNotSupportedException: Operation is not supported on this platform.

Bedeutet, dass Diese Bibliothek funktioniert aufgrund von Architektur- oder Betriebssysteminkompatibilitäten nicht mit Xamarin/Android. Es gibt keine Compilerfehler, aber dieses Oracle MySQL-Paket löst auch andere Ausnahmen aus, die sich immer auf die Architektur/das Betriebssystem beziehen, wenn versucht wird, seine Methoden auf einer Xamarin/Android-App auszuführen. Daher habe ich kürzlich eine Nachricht an Oracle geschrieben und sie gebeten, diese Informationen über Inkompatibilitäten aufzunehmen in der README… Alle Foren, die sich auf Xamarin und diese Bibliothek beziehen, enden damit, über ihre Android-Inkompatibilitätsprobleme zu sprechen.

Hier ist die Lösung, die ich anstelle der Oracle-Bibliothek verwende. Es ist ein alternatives, aktuelles und sehr ähnliches (und zu 100 % in Xamarin Android funktionierendes) Paket auf NuGet. Sie können es hier herunterladen:
https://www.nuget.org/packages/MySqlConnector/

Eine andere Alternative, sehr ähnlich, aber weniger aktualisiert und verwendet:
https://www.nuget.org/packages/Xamarin.MySql.Data/

Und es gibt auch ein anderes Paket (mit allen Dokumenten auf Chinesisch und einer seltsamen/ausgefeilten Art, Abfragen zu erstellen …), aber es funktioniert auch und wird häufig aktualisiert. Aber werfen Sie besser einen Blick auf die Dokumentation und die Beispiele hier, bevor Sie versuchen, Folgendes zu verwenden:
https://github.com/dotnetcore/FreeSql

1014030cookie-checkAndroidApp und MySqlConnection funktionierten nicht connection.open

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy