Почему приложение xamarin android на реальном устройстве всегда выдает ошибку, но работает на симуляторе - PullRequest
0 голосов
/ 02 июля 2018

У меня странная проблема. Я разрабатывал приложение, используя формы xamarin, которые используют API, написанный на php на заднем плане. iOS-версия приложения работает нормально, а Android-версия хорошо работает на симуляторе. Когда я архивирую и устанавливаю файл apk на реальном устройстве, он всегда выдает ошибку для всех функций API. Не удалось найти причину, по которой иду не так.

Архивирование моего apk-файла с armeabi-v7a и возможностью связывания в качестве пользовательских сборок и сборок Sdk только в режиме выпуска.

Мне не хватает каких-либо свойств, которые нужно установить для архивирования моего проекта?

Любая помощь будет оценена.

        public async void OnLogin()
        {               
          string url = "http://www.example.com/UserController/login";

            HttpClient client = new HttpClient();

            object userjson = new
            {
                email = Email.Text.ToLower(),
                password = Password.Text
            };

            var myContent = JsonConvert.SerializeObject(userjson);
            Console.WriteLine("Post Content" + myContent);
            var buffer = System.Text.Encoding.UTF8.GetBytes(myContent);
            var byteContent = new ByteArrayContent(buffer);
            byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            Console.WriteLine("Inside Login() Method");
            Console.WriteLine("Json Content::" + myContent);
            Console.WriteLine("Json Byte::" + byteContent.ReadAsStringAsync());
            var response = await client.PostAsync(url, byteContent).ConfigureAwait(false);

            var code = response.StatusCode;

            Console.WriteLine("Code::" + code);

            if (code.ToString() == "OK")
            {
                string res = response.Content.ReadAsStringAsync().Result;
                App.serverToken = "activated";
                App.Current.Properties["Token"] = App.serverToken;
                await Application.Current.SavePropertiesAsync();
                isValid = true;
                Console.WriteLine("Token::" + App.serverToken);
               }
                else
                {
                isValid = false;
                Device.BeginInvokeOnMainThread(() =>
                {
                    LoginFaild.Text = "InCorrect Email or Password";
                    Email.Text = string.Empty;
                    Password.Text = string.Empty;
                });
              }
            }

Это метод доступа к API с помощью Postasync.

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