Проблема с подключением к БД Mysql с эмулятора андроид c# maui

Возникла интересная проблема:
При запуске приложения на Windows Machine подключение к локальной БД MySql и последующий поиск данных выполняется успешно (простая форма авторизации).
Но при развёртывании приложения на эмуляторе Android (Эмулятор закачан через Visual Studio, Pixel 7 Pro, API 31 Android 12) возникают следующие ошибки:

System.TypeInitializationException: 'The type initializer for 'MySql.Data.MySqlClient.MySqlConfiguration' threw an exception.'

Нажимаю "Продолжить":

System.TypeInitializationException: 'The type initializer for 'MySql.Data.MySqlClient.Replication.ReplicationManager' threw an exception.'

Нажимаю ещё раз, вылезает ошибка сверху, потом ещё раз нажимаю, и заканчивается отладка.

С Windows подобных проблем нету.

Мой код:

using MySql.Data.MySqlClient;
using System.Data;

namespace UCLTest
{
public partial class MainPage : ContentPage
{
    DB db = new DB();

    public MainPage()
    {
        InitializeComponent();
    }

    void nameEntry_TextChanged(object sender, TextChangedEventArgs e)
    {
        var username = nameEntry.Text;
    }

    void nameEntry_TextChanged2(object sender, TextChangedEventArgs e)
    {
        var password = nameEntry2.Text;
    }

    async void LoginButton_Clicked(object sender, EventArgs e)
    {
        var username = nameEntry.Text;
        var password = nameEntry2.Text;

        if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
        {
            DisplayAlert("Ошибка", "Пожалуйста, введите логин и пароль", "OK");
            return;
        }

        db.openConnection();

        MySqlDataAdapter adapter = new MySqlDataAdapter();
        DataTable table = new DataTable();

        MySqlCommand command = new MySqlCommand("SELECT * FROM newuserstable WHERE userlogin = @userL AND userpassword = @userP", db.getConnection());
        command.Parameters.Add("@userL", MySqlDbType.VarChar).Value = username;
        command.Parameters.Add("@userP", MySqlDbType.VarChar).Value = password;

        adapter.SelectCommand = command;
        adapter.Fill(table);

        if (table.Rows.Count > 0)
        {
            DisplayAlert("Успех", "Вы авторизовались!", "OK");
        }
        else
        {
            DisplayAlert("Ошибка", "Неверный логин или пароль", "OK");
        }
        db.closeConnection();
    }
}

}

Это подключение к базе данных:

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UCLTest
{
class DB
{

    MySqlConnection connection = new MySqlConnection($"server=localhost;port=3306;username=root;password=root;database=ucl"); 

    public void openConnection() => connection.Open();

    public void closeConnection() => connection.Close();

    public MySqlConnection getConnection() => connection;

}
}

P.s, на табуляцию не обращайте внимание, впервые пишу тут, в коде всё нормально. Никаких других скриптов с кодом в проекте нету. Установлен только один Nuget пакет MySql.Data

Заранее благодарю всех за уделённое время и возможную помощь!


Ответы (1 шт):

Автор решения: Marello

Получилось в выводе увидеть это:

[monodroid-assembly] open_from_bundles: failed to load assembly System.Security.Permissions.dll
Loaded assembly: /data/data/com.companyname.ucltest/files/.__override__/System.Security.Permissions.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly System.Configuration.ConfigurationManager.dll
[monodroid-assembly] open_from_bundles: failed to load assembly 
System.Collections.Specialized.dll
Loaded assembly: /data/data/com.companyname.ucltest/files/.__override__/System.Configuration.ConfigurationManager.dll [External]
Loaded assembly: /data/data/com.companyname.ucltest/files/.__override__/System.Collections.Specialized.dll [External]
**System.TypeInitializationException:** 'The type initializer for 'MySql.Data.MySqlClient.MySqlConfiguration' threw an exception.'

Проблему удалось решить. Вместо MySql.Data используйте MySqlConnector.

→ Ссылка