Приложение работает в редакторе Unity, но не на Android

0

Создание интерфейсного интерфейса Unity, которое взаимодействует с внутренним интерфейсом PHP/MySQL. Сейчас я работаю над регистрацией и участками входа в систему. В редакторе Unity все работает отлично, в интерфейсе браузера также отлично работает регистрация. Но как только я беру рабочую сборку в Unity и создаю ее для тестирования на моем телефоне Google Pixel, регистрация и логин меня не срабатывают на моем телефоне. Сообщение об ошибке, которое я получаю от входа в систему, - "Ошибка ответа на синтаксический анализ с сервера, повторите попытку!" который находится в моем UILogin.cs. Но больше ничего не прилагается. Я пробовал следовать документации Unity для отладки, adb и DDMS, чтобы получить доступ, чтобы узнать, что происходит, но я потерпел неудачу на всех этих предприятиях. Есть ли что-то особенное в отношении объектов Android и WWW или веб-сообщений? Вот часть моего UILogin.cs, а также будет включать Login.php.

UILogin.cs

IEnumerator AttemptLogin(bool quickLogin)
    {
        CreateLoadingScreen();
        DeactivateForm();
        WWWForm form = new WWWForm();
        form.AddField("email", Email.text);
        form.AddField("password", Password.text);

        WWW www = new WWW(URL.GetLoginURL, form);
        yield return www;

        DestroyLoadingScreen();
        ActivateForm();
        ParseResult(www.text, quickLogin);
    }

    void ParseResult(string result, bool quickLogin)
    {
        byte resultCode;
        if (!byte.TryParse(result, out resultCode))
            Result.text = "Error parsing response from server, please try again!";
        else if (resultCode == 0)
        {
            if (RememberToggle.isOn && !quickLogin) // Remember me
            {
                PlayerPrefs.SetInt("remember", 1);
                PlayerPrefs.SetString("email", Email.text);
                PlayerPrefs.SetString("password", Password.text);
            }
            else if (!quickLogin)
            {
                TemporaryAccount.Email = Email.text;
                TemporaryAccount.Password = Password.text;
            }

            SceneManager.LoadScene(3);
        }
        else // Failure
        {
            if (quickLogin)
                ShowForm();

            Result.text = WebError.GetLoginError(resultCode);
        }
    }

login.php

<?php
    require "conn.php";

    $stmt = $pdo->prepare("SELECT * FROM account WHERE email=:email");
    $stmt->bindParam(":email", $_POST['email']);
    $stmt->execute();
    $count = $stmt->rowCount(); // gets count of records found

    if($count > 0) {
        $result = $stmt->fetch(); // gets resultset
        if(!password_verify($_POST['password'], $result[4]))
            echo "2";
        else
            echo "0";
    }
    else {
        echo "1";
    }
?>

Есть идеи?

Обновление № 1 Я напечатал www.text и www.error после возврата доходности www; Текст имеет значение null, а ошибка говорит: Неизвестная ошибка.

Обновление # 2 Интересно, что я также получил Неизвестную ошибку:

Clickme.cs

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class Clickme : MonoBehaviour
{
    public Text Result;

    public void OnClick()
    {
        StartCoroutine(RunScript());
    }

    IEnumerator RunScript()
    {
        WWW www = new WWW("http://www.familypolaris.com/helloWorld.php");
        yield return www;

        if (www.text == "")
            Result.text = "Result was empty, error: " + www.error;
    }
}

HelloWorld.php

<?php
    echo "Hello World!";
?>
  • 0
    Первое, что вы должны сделать, это распечатать полученные данные www.text и посмотреть, действительно ли он получил ожидаемые данные. Я сомневаюсь, что это было на Android. Второе, что нужно сделать, это распечатать ошибку www.error . Вы должны проверить , есть ли ошибка в вашем запросе перед обработкой или использованием полученных данных. Обновите свою оценку с результатом.
  • 0
    Хорошо, я сделал это и обновил свой вопрос. Результаты печати www.text и www.error после выхода были следующими: www.text был пуст. www.error сказал: «Неизвестная ошибка»
Показать ещё 6 комментариев
Теги:
unity3d

1 ответ

0
Лучший ответ

Я понял это, поэтому я отправлю ответ здесь. После того, как кто-то заметил, что они пробовали мой код, и все работает отлично, я решил попробовать другое устройство здесь. Это устройство также не удалось зарегистрировать и войти в систему. Это сказало мне что-то не так с моими настройками сборки. Моя первая идея заключалась в том, чтобы переключить тип сборки с Gradle на Internal, и это немедленно решило проблему для обоих моих устройств.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню