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

Клиент падает при запуске - Android

Восстановить пароль Регистрация
 
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
13.06.2016, 08:40     Клиент падает при запуске #1
Добрый день подскажите пожалуйста, где может быть ошибка. Не как не получается запустить данный код на Android при нажатие кнопки "отправить" программа падает. Но если запустить данный код в eclipse всё отлично работает.


Вызов клиента в MainActivity

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class MainActivity extends Activity {
 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createDirectory();
      
 
    }
 public void onClickSend(View view) throws FileNotFoundException {
 
Networking net = new Networking();
        net.execute();
}
 
}


Класс клиента


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
public class Networking extends AsyncTask<Void,Void,Void> {
 
 
    static private ServerSocket server;//принимает соединение от Socket connection
    static private Socket client;//создаёт соединение ServerSocket 
 
    /*****************STREAM*****************/
    static private BufferedOutputStream output;
    static private BufferedInputStream input;
    /***************************************/
 
 
 
 
    @Override
    protected Void doInBackground(Void... params) {
 
// TODO Auto-generated method stub
        byte[] byteArray = new byte[8192];
        int in;
 
        try {
 
            client = new Socket("192.168.56.1", 60000);
            input = new BufferedInputStream(new FileInputStream("/storage/emulated/0/Pictures/Photo_and_Video/i.jpg"));
            output = new BufferedOutputStream(client.getOutputStream());
 
            while ((in = input.read(byteArray)) != -1){
                output.write(byteArray,0,in);
 
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
        try {
            input.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            output.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
        return null;
    }
 
 
 
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,814
Завершенные тесты: 1
13.06.2016, 09:53     Клиент падает при запуске #2
разрешение в манифесте есть?
XML
1
    <uses-permission android:name="android.permission.INTERNET" />
если есть - весь лог ошибки надо показывать
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
13.06.2016, 10:50  [ТС]     Клиент падает при запуске #3
Да есть.
Про лог забыл )
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
06-13 10:48:53.242 16334-16492/centre_v01 E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                                                                             Process: centre, PID: 16334
                                                                             java.lang.RuntimeException: An error occured while executing doInBackground()
                                                                                 at android.os.AsyncTask$3.done(AsyncTask.java:300)
                                                                                 at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
                                                                                 at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
                                                                                 at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
                                                                                 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                 at java.lang.Thread.run(Thread.java:841)
                                                                              Caused by: java.lang.NullPointerException
                                                                                 at .centre.Networking.doInBackground(Networking.java:70)
                                                                                 at centre.Networking.doInBackground(Networking.java:19)
                                                                                 at android.os.AsyncTask$2.call(AsyncTask.java:288)
                                                                                 at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)*
                                                                                 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)*
                                                                                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)*
                                                                                 at java.lang.Thread.run(Thread.java:841)*
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,814
Завершенные тесты: 1
13.06.2016, 11:00     Клиент падает при запуске #4
192.168.56.1 это адрес чего?
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
13.06.2016, 11:07  [ТС]     Клиент падает при запуске #5
Удалённого сервера.
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,814
Завершенные тесты: 1
13.06.2016, 11:19     Клиент падает при запуске #6
там порт открыт?
проверить телнетом, будет работать?
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
13.06.2016, 11:27  [ТС]     Клиент падает при запуске #7
Да открыт, я проверял это код в eclipse всё приходит но вот Android работать не хочет.
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,814
Завершенные тесты: 1
13.06.2016, 11:37     Клиент падает при запуске #8
я бы проверял не на эмуляторе, а на реальном устройстве, потому что у эмулятора адрес вообще из другой подсети

+ по логу непонятно какая именно строка выдает NullPointerException
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
13.06.2016, 11:49  [ТС]     Клиент падает при запуске #9
Эта проблема при работе реального устройства

на сколько я понимаю ругается он на эти строки
Java
1
2
at .centre.Networking.doInBackground(Networking.java:70)
at centre.Networking.doInBackground(Networking.java:19)
В коде они соответствуют
Java
1
2
3
4
public class Networking extends AsyncTask<Void,Void,Void> //19
 
 
 input.close();//70
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,814
Завершенные тесты: 1
13.06.2016, 12:00     Клиент падает при запуске #10
а какая версия андроида на устройстве, не 6.х ?

если ругается на input.close() значит надо проверить разрешение в манифесте на доступ в карте памяти
XML
1
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
если оно есть и версия андроида ниже 6 то надо проверять точно ли оно понимает такой путь "/storage/emulated/0/Pictures/Photo_and_Video/i.jpg"
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
13.06.2016, 12:08  [ТС]     Клиент падает при запуске #11
Версия 4.4 , разрешение есть, да на адрес я тоже думал, но как его правильно прописать ?
/storage/emulated/0/Pictures/Photo_and_Video/i.jpg где может быть ошибка в нём я его копировал с самого устройства ?
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,814
Завершенные тесты: 1
13.06.2016, 13:13     Клиент падает при запуске #12
а этот файл там есть точно?
в логе только эта ошибка, других нет?
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
14.06.2016, 10:12  [ТС]     Клиент падает при запуске #13
Добавлено через 20 часов 23 минуты
Задача решена, всё дело было в параметре

Java
1
protected Void doInBackground(Void... params)
Сменил его и заработало

Java
1
protected Void doInBackground(Void... arg0)
petruchodd
 Аватар для petruchodd
89 / 89 / 8
Регистрация: 23.06.2009
Сообщений: 505
14.06.2016, 12:02     Клиент падает при запуске #14
Цитата Сообщение от Terabaytus Посмотреть сообщение
Сменил его и заработало
это никак не влияет на ошибку.
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
17.06.2016, 10:33  [ТС]     Клиент падает при запуске #15
petruchodd, да походу никак приложение опять падает подскажите пожалуйста в чем может быть причина

Код клиента

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
public class MainActivity extends Activity {
 
 
static private ServerSocket server;//принимает соединение от Socket connection
    static private Socket client;//создаёт соединение ServerSocket так же может соедениться с channel socket
 
    /*****************STREAM*****************/
    static private BufferedOutputStream output;
    static private BufferedInputStream input;
    /***************************************/
 
 
 
 
 /**********************************ЗАГРУЗЧИК**********************************/
    public void onClickSend(View view) throws FileNotFoundException {
 
        Networking net =new Networking();
        net.execute();
 
    }
 
 
 
public class Networking extends AsyncTask<Void,Integer,Void> {
 
 
 
        ProgressBar progressBar;
 
 
 
 
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
 
            progressBar = (ProgressBar) findViewById(R.id.progressBar);
            progressBar.setVisibility(ProgressBar.INVISIBLE);
            progressBar.setVisibility(ProgressBar.VISIBLE);// запускаем длительную операцию
 
                Toast toast = Toast.makeText(getApplicationContext(),//создаем и отображаем текстовое уведомление "Загрузка"
                        R.string.message,
                        Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
 
 
        }
 
 
 
 
        @Override
        protected Void doInBackground(Void... arg0) {
 
// TODO Auto-generated method stub
            byte[] byteArray = new byte[8192];
            int in;
 
            try {
 
                client = new Socket("192.168.1.138", 60000);
                input = new BufferedInputStream(new FileInputStream("/storage/emulated/0/Pictures/Photo_and_Video/i.jpg"));
                output = new BufferedOutputStream(client.getOutputStream());
 
                while ((in = input.read(byteArray)) != -1){
                    output.write(byteArray,0,in);
 
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                Log.d(TAG, "Message", e);
            }
 
            try {
                input.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                Log.d(TAG, "Message", e);
            }
            try {
                output.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 
            return null;
        }
 
        protected void onPostExecute(Void result) {
           super.onPostExecute(result);
 
            progressBar.setVisibility(ProgressBar.INVISIBLE);
            
            Toast toast = Toast.makeText(getApplicationContext(),//создаем и отображаем текстовое уведомление
                    R.string.message1,
                    Toast.LENGTH_LONG);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
 
 
        }
 
    }
 
}


Лог ошибки


в строке 201 находиться input.close();
в строке 148 находиться public class Networking extends AsyncTask<Void,Integer,Void>



Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
06-17 10:00:13.488 30973-31069/ru.centre_v01 E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
 Process: ru.centre_v01, PID: 30973
 java.lang.RuntimeException: An error occured while executing doInBackground()
 at android.os.AsyncTask$3.done(AsyncTask.java:300)
 at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
 at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
 at java.util.concurrent.FutureTask.run(FutureTask.java:242)
 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                           at java.lang.Thread.run(Thread.java:841)
                           Caused by: java.lang.NullPointerException
at ru.centre_v01.MainActivity$Networking.doInBackground(MainActivity.java:201)
at ru.centre_v01.MainActivity$Networking.doInBackground(MainActivity.java:148)
                           at android.os.AsyncTask$2.call(AsyncTask.java:288)
                           at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                           at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                         at java.lang.Thread.run(Thread.java:841)
petruchodd
 Аватар для petruchodd
89 / 89 / 8
Регистрация: 23.06.2009
Сообщений: 505
17.06.2016, 11:43     Клиент падает при запуске #16
проверь логом
Java
1
2
 input = new BufferedInputStream(new FileInputStream("/storage/emulated/0/Pictures/Photo_and_Video/i.jpg"));
          Log.e("test", "input = "+input);
возможно input сходу идет как null.
Hank
42 / 33 / 2
Регистрация: 28.12.2011
Сообщений: 210
17.06.2016, 11:47     Клиент падает при запуске #17
Вы и сами можете определить в чем причина.
Цитата Сообщение от Terabaytus Посмотреть сообщение
Caused by: java.lang.NullPointerException
В месте где возникает исключение тормозните выполнение приложение в debug режиме и посмотрите что там именно null.
Если вы говорите, что падает на этой строке
Java
1
input.close();
, значит input null.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2016, 13:35     Клиент падает при запуске
Еще ссылки по теме:

Android Падает скорость объектов на экране при нажатии
Программа падает при попытке задать текст TextView в диалоговом окне Android
При запуске карты тормозит Android
Android Ошибка при запуске VM VB
Ошибка при запуске Android

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

Или воспользуйтесь поиском по форуму:
Terabaytus
 Аватар для Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 56
17.06.2016, 13:35  [ТС]     Клиент падает при запуске #18
petruchodd, Hank, спасибо всё заработало дело было в порте.
Yandex
Объявления
17.06.2016, 13:35     Клиент падает при запуске
Ответ Создать тему
Опции темы

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