Проблема с БД в Unity

Делаю мобильное 2d приложение на Unity, которое напрямую взаимодействует с БД с хостинга. Проблема заключается в том, что когда при запуске приложения (или при нажатии кнопки - точки входа в приложение) скрипт берет информацию из БД и заносит её в специальный словарь, в котором она хранится на протяжении использования приложения. Класс DB описан для хранения объекта базы данных:

public class DB
{
    MySqlConnection conn = new MySqlConnection("server=name;port=3306;username=name;password=pass;database=name");

    public void openConnection()
    {
        if (conn.State == System.Data.ConnectionState.Closed)
        {
            conn.Open();
        }
    }
    public void closeConnection()
    {
        if (conn.State == System.Data.ConnectionState.Open)
        {
            conn.Close();
        }
    }

    public MySqlConnection getConnection()
    {
        return conn;
    }
}

В строках name и pass указаны соответствующие данные для подключения к БД.

Также имеется статический класс, который хранит всю информацию, которая используется во время работы приложения, и в нём хранится объект класса DB, а также словарь, который будет хранить информацию, взятую из БД в дальнейшем (ключ - id из таблицы, список массивов из строк - остальные поля, нужные для дальнейшей работы):

public static class Params
{
    public static Dictionary<int, List<string[]>> pictures = new Dictionary<int, List<string[]>>();
    public static DB dataBase= new DB();
}

Далее, при запуске приложения работает скрипт, который добавляет нужную информацию в словарь pictures:

Params.dataBase.openConnection();

            using (MySqlDataReader reader = new MySqlCommand("SELECT * from genre", Params.dataBase.getConnection()).ExecuteReader())
            {
                while (reader.Read())
                    Params.pictures.Add(int.Parse(reader[0].ToString()), new List<string[]>());
            }

            for (int i = 1; i <= Params.pictures.Count; i++)
            {
                var a = Params.pictures.Keys;
                MySqlCommand pictureSelect = new MySqlCommand($"SELECT genre.DENOMINATION as GENRE, picture.DENOMINATION, picture.DESCRIPTION, SPRITE, artist.FORENAME as artist_forename FROM artist INNER JOIN picture ON picture.id_ARTIST = artist.id inner join genre on picture.id_genre = genre.id WHERE picture.id_genre = {i}", Params.dataBase.getConnection());
                using (MySqlDataReader reader = pictureSelect.ExecuteReader())
                {
                    while (reader.Read())
                        Params.pictures[i].Add(new string[] { reader[1].ToString(), reader[4].ToString(), reader[2].ToString(), reader[3].ToString() });
                }
            }
            Params.dataBase.closeConnection();

Результат запроса "Select * from genre": введите сюда описание изображения

пример результата запроса picutreSelect: введите сюда описание изображения

Суть проблемы: Когда я запускаю приложение в Unity, то всё работает, но когда я делаю билдом apk, устанавливаю на устройство, запускаю, то ничего не происходит, данные не получаются из БД. Я попробовал сделать поле Text на сцене, и там получаю вот такую ошибку: введите сюда описание изображения


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

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

Зацени у этого типа. Он MySql.Data.xml юзает. У него целый проет примера клиента MySQL для анлройда на юнити.

Ещё возможно у андройда понадобится network permissions (Player Settings). введите сюда описание изображения

→ Ссылка