Проект Unity не может найти правильный путь базы данных в устройстве Android - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть проект Unity, который без проблем работает в редакторе Unity. Но когда я запускаю приложение на Android-устройстве, проблема проявляется. Проблема в том, что приложение не может найти базу данных в канале данных, который находится в коде... Это делает файл с тем же именем в этом месте, и этот файл пуст. Так что при любом методе нужны данные из базы данных, возникает ошибка, которая (не найти таблицу)

Я помещаю базу данных в папку активов

Вот код для определения пути .. Сначала я попробовал только эту часть: testconnectionString = Application.dataPath + "/ARMaze.sqlite";

Затем код зала. Затем код без комментария.часть .. И у меня есть проблема каждый раз

void Start()
{
    if (Application.platform != RuntimePlatform.Android)
    {
        testconnectionString = Application.dataPath + "/ARMaze.sqlite";
    }
    else
    {
        testconnectionString = Application.persistentDataPath + "/ARMaze.sqlite";

        //if (!File.Exists(testconnectionString))
        //{
        //    WWW load = new WWW("jar:file://" + Application.dataPath + "!/assets" + "/ARMaze.sqlite");
        //    while (!load.isDone) { }

        //    File.WriteAllBytes(testconnectionString, load.bytes);
        //}
    }

    connectionString = "URI=file:" + testconnectionString ;
    Debug.Log("Connection String is "+connectionString);
}

Пожалуйста, помогите мне .. Я ищу много в сети..но не могу найти ответ ..

1 Ответ

0 голосов
/ 03 апреля 2019

Как правило, для системных путей вы не объединяете строку напрямую, а используете Path.Combine

if (Application.platform != RuntimePlatform.Android)
{
    testconnectionString = Path.Combine(Application.dataPath, "ARMaze.sqlite");
}
else
{
    testconnectionString = Path.Combine(Application.persistentDataPath, "ARMaze.sqlite");
    ...

Он автоматически использует правильный разделитель пути (\ или /) для целевой платформы.

Возможно, я ошибаюсь, но я думаю, что ! в системном пути может создать проблемы.Почему даже добавление !/assets здесь?Разве это не должен быть тот же путь, что и раньше testconnectionString?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...