Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
#1

Клиент падает при запуске - Программирование Android

13.06.2016, 08:40. Просмотров 310. Ответов 17
Метки нет (Все метки)

Добрый день подскажите пожалуйста, где может быть ошибка. Не как не получается запустить данный код на 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;
    }
 
 
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2016, 08:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Клиент падает при запуске (Программирование Android):

Клиент не соединяется с сервером при запуске из Android Studio - Программирование Android
Доброго времени суток, форумчане. Целые сутки убил на решение вопроса, ответа так и не нашел, решил создать собственную тему. Пытаюсь...

Падает приложение при чтении настроек - Программирование Android
Вот фрагмент моего кода: public void butCalculationElectric_Click(View v){ float c_to100 = sp.getFloat(&quot;to100&quot;,...

Падает скорость объектов на экране при нажатии - Программирование Android
Привет. У меня возникла проблема. Создал маленькую игру, На экране двигаются несколько объектов, а один из них двигается в зависимости от...

Программа падает при попытке задать текст TextView в диалоговом окне - Программирование Android
Лог: java.lang.IllegalStateException: Could not execute method of the activity at...

Ошибка при запуске AsyncTask при нажатии на пункт ActionBar - Программирование Android
Здравствуйте, почему при нажатии на пункт Action Bar'а вылетает ошибка? @Override public boolean onCreateOptionsMenu(Menu menu)...

Ошибка при запуске VM VB - Программирование Android
помогите пожалуйста у меня внезапно перестала запускаться оракловская виртуалка с андроидом, которую я использовал как эмулятор, пишет...

17
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,142
Завершенные тесты: 1
13.06.2016, 09:53 #2
разрешение в манифесте есть?
XML
1
    <uses-permission android:name="android.permission.INTERNET" />
если есть - весь лог ошибки надо показывать
0
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
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)*
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,142
Завершенные тесты: 1
13.06.2016, 11:00 #4
192.168.56.1 это адрес чего?
0
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
13.06.2016, 11:07  [ТС] #5
Удалённого сервера.
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,142
Завершенные тесты: 1
13.06.2016, 11:19 #6
там порт открыт?
проверить телнетом, будет работать?
0
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
13.06.2016, 11:27  [ТС] #7
Да открыт, я проверял это код в eclipse всё приходит но вот Android работать не хочет.
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,142
Завершенные тесты: 1
13.06.2016, 11:37 #8
я бы проверял не на эмуляторе, а на реальном устройстве, потому что у эмулятора адрес вообще из другой подсети

+ по логу непонятно какая именно строка выдает NullPointerException
0
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
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
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,142
Завершенные тесты: 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"
0
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
13.06.2016, 12:08  [ТС] #11
Версия 4.4 , разрешение есть, да на адрес я тоже думал, но как его правильно прописать ?
/storage/emulated/0/Pictures/Photo_and_Video/i.jpg где может быть ошибка в нём я его копировал с самого устройства ?
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,142
Завершенные тесты: 1
13.06.2016, 13:13 #12
а этот файл там есть точно?
в логе только эта ошибка, других нет?
0
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
14.06.2016, 10:12  [ТС] #13
Добавлено через 20 часов 23 минуты
Задача решена, всё дело было в параметре

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

Java
1
protected Void doInBackground(Void... arg0)
0
petruchodd
118 / 115 / 12
Регистрация: 23.06.2009
Сообщений: 612
14.06.2016, 12:02 #14
Цитата Сообщение от Terabaytus Посмотреть сообщение
Сменил его и заработало
это никак не влияет на ошибку.
0
Terabaytus
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 64
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)
0
17.06.2016, 10:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2016, 10:33
Привет! Вот еще темы с ответами:

Ошибка при запуске - Программирование Android
Здравствуйте. Возникает ошибка при вызове getLastKnownLocation.

GC при запуске приложение - Программирование Android
При запуске приложения в логе вижу череду сообщений о работе GC 11-28 15:13:53.887: D/dalvikvm(1742): GC_CONCURRENT freed 318K, 50%...

Ошибка при запуске - Программирование Android
При запуске приложения выводит ошибку: &quot;В приложении &quot;Saint switcher&quot; произошла ошибка&quot; в чем ошибка? Вот код package...

Ошибка при запуске приложения - Программирование Android
Сегодня запускал приложение, оно не запускается, выдает такую ошибку 08-17 18:39:37.012 10830-10830/? E/adsprpc:...


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

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

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