Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
марсль
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 18
#1

Возникает ошибка при попытке регистрации - Android

28.09.2014, 11:45. Просмотров 572. Ответов 7
Метки нет (Все метки)

Здравствуйте, недавно начал изучать андроид, и его взаимодействие с php скриптом, а также БД MySQL.
В интернете нашел урок по созданию регистрации и авторизации вот на этом сайте.
Выполнил пошагово все действия, но у меня почему то не работает данный скрипт, при попытке регистрации приложение сворачивается, хотя весь код и все что написано я сделал.
Там также есть возможность скачать приложение, которое сделал сам автор. Я скачал его, указал путь к файлу php на своем сервере, как указанно в уроке, и оно работает.
Когда же я пытаюсь создать такое же приложение в новом проекте возникает ошибка. Не могу понять из-за чего .
Может кто- нибудь уже сталкивался с этим и знает в чем проблема? Буду благодарен за помощь).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2014, 11:45     Возникает ошибка при попытке регистрации
Посмотрите здесь:

При попытке получить слепок MD5 - получаю SHA1 Android
Возникает ошибка при builder.parse Android
Программа падает при попытке задать текст TextView в диалоговом окне Android
При переходе между активити возникает ошибка Android
При попытке открыть второй и третий Activity происходит завершение работы программы Android
Как организовать сохранение данных при регистрации Android
Android Ошибка при попытке скрыть элемент
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
28.09.2014, 15:48     Возникает ошибка при попытке регистрации #2
Ну хотя бы код самой ошибки не помешал бы...
марсль
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 18
28.09.2014, 16:51  [ТС]     Возникает ошибка при попытке регистрации #3
09-28 12:26:33.099 1236-1236/com.Yoola.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)
at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
at java.net.InetAddress.getAllByName(InetAddress.java:214)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
at com.Yoola.app.library.JSONParser.getJSONFromUrl(JSONParser.java:42)
at com.Yoola.app.library.UserFunctions.registerUser(UserFunctions.java:60)
at com.Yoola.app.RegisterActivity$1.onClick(RegisterActivity.java:61)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

Добавлено через 23 минуты
dubok79, Весь код вставлял тот же что и на сайте, поставил только свою url ссылку на регистрацию , php скрипты и БД также создал на сервере. Не могу понять почему когда я использую код автора, у меня не выходит ошибка и все работает, а когда создаю все это в своем приложении выдает ошибку
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
29.09.2014, 10:22     Возникает ошибка при попытке регистрации #4
Цитата Сообщение от марсль Посмотреть сообщение
android.os.NetworkOnMainThreadException
Ну нельзя лезть в сеть из main потока. Используйте Thread/AsyncTask/Loader. Примеров найдёте миллион.
марсль
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 18
29.09.2014, 19:37  [ТС]     Возникает ошибка при попытке регистрации #5
Но у автора код почему то работает, оно сделано с использованием того же кода, если залезть в код и посмотреть. Но спасибо попробую посмотреть может поможет.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
29.09.2014, 21:00     Возникает ошибка при попытке регистрации #6
марсль, эту защиту вели по-моему с 3.0+ android. Код будет работать на старых устройствах.
марсль
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 18
30.09.2014, 19:25  [ТС]     Возникает ошибка при попытке регистрации #7
А вы не можете привести как это будет выглядеть в данном контексте кода AsyncTask:

Java
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/**
 * Author: Ravi Tamada
 * URL: [url]www.androidhive.info[/url]
 * twitter: [url]http://twitter.com/ravitamada[/url]
 * */
package com.Yoola.app;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
 
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
import com.Yoola.app.library.DatabaseHandler;
import com.Yoola.app.library.UserFunctions;
 
 
 
import org.json.JSONException;
import org.json.JSONObject;
 
public class RegisterActivity extends Activity {
    Button btnRegister;
    Button btnLinkToLogin;
    EditText inputSurname;
    EditText inputFullName;
    EditText inputEmail;
    EditText inputPassword;
    TextView registerErrorMsg;
    
    // JSON Response node names
    private static String KEY_SUCCESS = "success";
    private static String KEY_ERROR = "error";
    private static String KEY_ERROR_MSG = "error_msg";
    private static String KEY_UID = "uid";
    private static String KEY_NAME = "name";
    private static String KEY_SURNAME = "surname";
    private static String KEY_EMAIL = "email";
    private static String KEY_CREATED_AT = "created_at";
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
 
        // Importing all assets like buttons, text fields
        inputFullName = (EditText) findViewById(R.id.registerName);
        inputSurname =(EditText) findViewById(R.id.registerSurname);
        inputEmail = (EditText) findViewById(R.id.registerEmail);
        inputPassword = (EditText) findViewById(R.id.registerPassword);
        btnRegister = (Button) findViewById(R.id.btnRegister);
        btnLinkToLogin = (Button) findViewById(R.id.btnLinkToLoginScreen);
        registerErrorMsg = (TextView) findViewById(R.id.register_error);
        
        // Register Button Click event
        btnRegister.setOnClickListener(new View.OnClickListener() {
 
            public void onClick(View view) {
 
 
                String name = inputFullName.getText().toString();
                String surname = inputSurname.getText().toString();
                String email = inputEmail.getText().toString();
                String password = inputPassword.getText().toString();
                UserFunctions userFunction = new UserFunctions();
                JSONObject json = userFunction.registerUser(name,surname, email, password);
                
                // check for login response
                try {
                    if (json.getString(KEY_SUCCESS) != null) {
                        registerErrorMsg.setText("");
                        String res = json.getString(KEY_SUCCESS); 
                        if(Integer.parseInt(res) == 1){
                            // user successfully registred
                            // Store user details in SQLite Database
                            DatabaseHandler db = new DatabaseHandler(getApplicationContext());
                            JSONObject json_user = json.getJSONObject("user");
                            
                            // Clear all previous data in database
                            userFunction.logoutUser(getApplicationContext());
                            db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_SURNAME), json_user.getString(KEY_EMAIL), json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT));
                            // Launch Dashboard Screen
                            Intent dashboard = new Intent(getApplicationContext(), DashboardActivity.class);
                            // Close all views before launching Dashboard
                            dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            startActivity(dashboard);
                            // Close Registration Screen
                            finish();
                        }else{
                            // Error in registration
                            registerErrorMsg.setText("Error occured in registration");
                        }
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });
 
        // Этот метод вызывается из главного потока GUI.
        private void mainProcessing() {
            // Здесь трудоемкие задачи переносятся в дочерний поток.
            Thread thread = new Thread(null, doBackgroundThreadProcessing,
                    "Background");
            thread.start();
        }
// Объект Runnable, который запускает метод для выполнения задач
// в фоновом режиме.
        private Runnable doBackgroundThreadProcessing = new Runnable() {
            public void run() {
                backgroundThreadProcessing();
            }
        };
// Метод, который выполняет какие-то действия в фоновом режиме.
        private void backgroundThreadProcessing() {
            [ ... Трудоемкие операции ... ]
        }
 
        // Link to Login Screen
        btnLinkToLogin.setOnClickListener(new View.OnClickListener() {
 
            public void onClick(View view) {
                Intent i = new Intent(getApplicationContext(),
                        LoginActivity.class);
                startActivity(i);
                // Close Registration View
                finish();
            }
        });
    }
}
Как я понял его нужно поставить на кнопку регистрации?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2014, 17:57     Возникает ошибка при попытке регистрации
Еще ссылки по теме:

Android Почему выскакивает уведомление при попытке запустить apk ?
Возникает ошибка при запросе Android
"Error while reading RSS" при попытке загрузить новости Android
Ошибка при попытке подключится к камере на эмуляторе AS Android
Android Ошибка синхронизации Gradle при попытке создания проекта Android в IntelliJ IDEA

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

Или воспользуйтесь поиском по форуму:
марсль
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 18
02.10.2014, 17:57  [ТС]     Возникает ошибка при попытке регистрации #8
YuraAAA, не могли бы вы показать начало, как мне запаковать отправку данных в AsyncTask и поставить его на кнопку?
Yandex
Объявления
02.10.2014, 17:57     Возникает ошибка при попытке регистрации
Ответ Создать тему
Опции темы

Текущее время: 20:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru