Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
EDStickney
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 2
1

System.NullReferenceException: Object reference not set to an instance of an object

30.11.2016, 16:19. Просмотров 1398. Ответов 2

Проблема заключается вот в чем
Написал код на c# на компьютере, переношу его на мобильную версию(Xamarin)
Все работало нормально, однако при последнем запуске выдало ошибку
System.NullReferenceException: Object reference not set to an instance of an object.

При ошибке выделяет этот кусок кода.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 registAcptBttn.Click += delegate
            {
                using (var webClient = new WebClient())
                {
                    param.Clear();
                    param.Add("validate_email", emailRegist.Text);
 
                    var response = webClient.UploadValues(url, param);
                    var emailValidate = System.Text.Encoding.UTF8.GetString(response);
                    JArray jsonEmailVal = JArray.Parse(emailValidate);
                    
                    if (Convert.ToString(jsonEmailVal[0]["answer"]) == "200")
                    {
                        param.Clear();
                        param.Add("register", emailRegist.Text);
                        param.Add("pswrd", passRegist.Text);
                        param.Add("invite_code", "2009");
 
                        response = webClient.UploadValues(url, param);
                        string str = System.Text.Encoding.UTF8.GetString(response); ;
                        JArray json = JArray.Parse(str);
                        answer = Convert.ToString(json[0]["answer"]);
                        if (answer == "200")
                        {
                            hash = Convert.ToString(json[1]["token-hash"]);
                            SetContentView(Resource.Layout.Registration);
                        }
                        registAnswerView.Text = answer + hash;
                    }
                    else
                    {
                        registAnswerView.Text = "Неверный Email";
                    }
 
 
                }
            };
Весь код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using Android.App;
using Android.Widget;
using Android.OS;
using System;
using System.Net;
using System.Collections.Specialized;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.IO;
 
 
namespace NormalFitAppMobile
{
    [Activity(Label = "NormalFit", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        Button loginBttn;
        Button registBttn;
        Button registAcptBttn;
        EditText emailRegist;
        EditText passRegist;
        TextView registAnswerView;
        TextView testTextView;
 
        public static string hash = "";
        public static string answer = "";
        public static string url = "http://192.168.9.240/ajax/user.php";
 
 
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
 
         
            SetContentView (Resource.Layout.Main);
 
            loginBttn = FindViewById<Button>(Resource.Id.LoginBttn);
            registBttn = FindViewById<Button>(Resource.Id.RegistBttn);
            testTextView = FindViewById<TextView>(Resource.Id.TestTextView);
 
            registAcptBttn = FindViewById<Button>(Resource.Id.RegistAcptBttn);
            emailRegist = FindViewById<EditText>(Resource.Id.EmailRegist);
            passRegist = FindViewById<EditText>(Resource.Id.PassRegist);
            registAnswerView = FindViewById<TextView>(Resource.Id.RegistAnswerView);
            
 
            NameValueCollection param = new NameValueCollection();
 
            loginBttn.Click += delegate
            {
                testTextView.Text = "Работает";
            };
 
            registBttn.Click += delegate
            {
                SetContentView(Resource.Layout.Registration);
            };
 
            registAcptBttn.Click += delegate
            {
                using (var webClient = new WebClient())
                {
                    param.Clear();
                    param.Add("validate_email", emailRegist.Text);
 
                    var response = webClient.UploadValues(url, param);
                    var emailValidate = System.Text.Encoding.UTF8.GetString(response);
                    JArray jsonEmailVal = JArray.Parse(emailValidate);
                    
                    if (Convert.ToString(jsonEmailVal[0]["answer"]) == "200")
                    {
                        param.Clear();
                        param.Add("register", emailRegist.Text);
                        param.Add("pswrd", passRegist.Text);
                        param.Add("invite_code", "2009");
 
                        response = webClient.UploadValues(url, param);
                        string str = System.Text.Encoding.UTF8.GetString(response); ;
                        JArray json = JArray.Parse(str);
                        answer = Convert.ToString(json[0]["answer"]);
                        if (answer == "200")
                        {
                            hash = Convert.ToString(json[1]["token-hash"]);
                            SetContentView(Resource.Layout.Registration);
                        }
                        registAnswerView.Text = answer + hash;
                    }
                    else
                    {
                        registAnswerView.Text = "Неверный Email";
                    }
 
 
                }
            };
        }
    }
}
До написания этого куска, все работало хорошо, и сейчас без него работает. Сам разобраться не смог, может упустил что-то

В файле packages.config сам packages пишет что не объявлен. Слышал что это не особо важно, мол проблема с NuGet, но все же
XML
1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" />
</packages>

Прошу вашей помощи, ибо схожие проблемы находил, но нужную информацию оттуда не получил

Добавлено через 52 минуты
Заметил что ошибка появляется только при обращении к элементам на втором Layout
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2016, 16:19
Ответы с готовыми решениями:

HtmlAgilityPack выбрасывает исключение Object reference not set to an instance of an object
Помогите пожалуйста разобраться. Есть такой html код Хочу получить строку...

При streamreader.ReadLine() выскакивает ошибка object reference not set to an instance of object
Здраствуйте, у меня вдруг появилась такая проблема, что при...

Вывести переменную типа string в консоль: Object reference not set to an instance of an object
Вот такой сабж. Пытаюсь вывести переменную типа стринг в консоль Сначала,...

Программа не выполняет условие (fileInput != null) и выдает Object reference not set to instance of an object
Доброго времени суток, форумчане! Помогите бедному студенту решить вот такую...

Непонятная ошибка: Object reference not set to an instance of an object
Код программы: using System; using System.Collections.Generic; using...

2
OwenGlendower
Супер-модератор
Эксперт .NET
9459 / 8274 / 3541
Регистрация: 17.03.2014
Сообщений: 16,477
Записей в блоге: 1
30.11.2016, 17:50 2
EDStickney, отладчик или трассировка стека не показывают разве конкретную строку с исключением?
0
EDStickney
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 2
30.11.2016, 18:08  [ТС] 3
Он ругается на все элементы, которые находятся на другом layout, я так понимаю мне для каждого layout нужно свою activity писать, однако я не знаю как между активностями переключаться. Надо посмотреть
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2016, 18:08

Проблема со свойствами: Object reference not set to an instance of an object
Здравствуйте, пишу вот такой код: using System; using...

Абстрактный класс. Object reference not set to an instance of an object.
Не работает поиск по заданной дате... Ругается вот на эту строчку: foreach...

Ошибка Object reference not set to an instance of an object
На форме есть DataGridView. Есть код, который выдает ошибку &quot;Object reference...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru