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

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

Войти
Регистрация
Восстановить пароль
 
 
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
#1

Крэшится при запуске. Небольшой и простой код - Программирование Android

24.01.2016, 14:24. Просмотров 467. Ответов 23
Метки нет (Все метки)

Приложение крэшится при запуске. Что я сделал не так?
Также, пользуясь случаем, хочу узнать - как запросить у пользователя при включении приложухи включить bluetooth? Я закомментировал REQUEST_ENABLE_BT , т.к. не понимаю к чему это обращается


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
import android.bluetooth.*;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity {
 
    BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
    TextView TxtNameDevice = (TextView)findViewById(R.id.TxtNameDevice);
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    protected void onStart(){
        super.onStart();
 
      if(bluetooth.isEnabled()){
 
        //Bluetooth включен.
      }else{
 
        //Bluetooth выключен. Предложим включить
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        //startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
      }
 
        //Всплывающее сообщение о доступности Bluetooth
      String status;
      if(bluetooth.isEnabled()){
 
        String mydeviceaddress = bluetooth.getAddress();
        String mydevicename = bluetooth.getName();
        status = mydevicename + " : " + mydeviceaddress;
        TxtNameDevice.setText(mydevicename);
 
      }else{
 
        status = "Bluetooth выключен!";
      }
      Toast.makeText(this,status,Toast.LENGTH_LONG).show();
 
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2016, 14:24     Крэшится при запуске. Небольшой и простой код
Посмотрите здесь:

Ошибка при запуске eclipse: исчез код - Программирование Android
Добрый вечер. Решила попробовать сделать небольшой проект на Android чтобы в процессе узнать что и как. Идеей проекта выбрала приложение...

Может кто написать простой код на основе MVP , заранее большое спасибо - Программирование Android
Добрый день) Может кто написать коротенький код, в котором генерируется случайный пример сложения или вычитания , и по нажатию на одну из...

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

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

Ошибка при запуске на устройстве - Программирование Android
помогите решить проблемму. Пытаюсь отлаживать приложение на устройстве (телефон и планшет) но при установке выдает ошибку "Failure " причем...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
24.01.2016, 15:14     Крэшится при запуске. Небольшой и простой код #2
AlexRu18, нужно лог шибки показывать. У тебя походу проблема с тем, что ты ищешь view на не подключенной разметке. Попробуй так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class MainActivity extends AppCompatActivity {
 
    BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
    TextView txtNameDevice;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        txtNameDevice = (TextView)findViewById(R.id.TxtNameDevice);
    }
Vladimirys
306 / 203 / 24
Регистрация: 16.01.2010
Сообщений: 575
24.01.2016, 15:18     Крэшится при запуске. Небольшой и простой код #3
ТС, OnCreate() как думаете для чего? Вот как раз что бы интерфейс "раздуть". Так что как минимум в этом ошибка есть.
ТС, не представляете, до какой степени, лениво рыться в чужом коде. Это только препод может - у него большой опыт)
P.S Не забывайте выкладывать логи. Это помогает.
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
24.01.2016, 15:50  [ТС]     Крэшится при запуске. Небольшой и простой код #4
Спасибо, чёт я затупок.

При выключенном Bluetooth включается.
Я так понимаю он не может показать мне имя устройства и вывести в TextView, но почему?
http://www.cyberforum.ru/attachment....1&d=1453639877
При вкл. вылет с логом:

Unable to start activity ComponentInfo{com.alexru18.bluetoothchat/com.alexru18.bluetoothchat.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2185)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210)
at android.app.ActivityThread.access$600(ActivityThread.java:142)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4931)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.alexru18.bluetoothchat.MainActivity.onStart(MainActivity.java:45)_______________________________
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163)
at android.app.Activity.performStart(Activity.java:5018)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210)*
at android.app.ActivityThread.access$600(ActivityThread.java:142)*
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208)*
at android.os.Handler.dispatchMessage(Handler.java:99)*
at android.os.Looper.loop(Looper.java:137)*
at android.app.ActivityThread.main(ActivityThread.java:4931)*
at java.lang.reflect.Method.invokeNative(Native Method)*
at java.lang.reflect.Method.invoke(Method.java:511)*
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)*
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)*
at dalvik.system.NativeStart.main(Native Method)*
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.01.2016, 15:51     Крэшится при запуске. Небольшой и простой код #5
AlexRu18, уже ведь сказали Вам всё.

Цитата Сообщение от AlexRu18 Посмотреть сообщение
TextView TxtNameDevice = (TextView)findViewById(R.id.TxtNameDevice);
заменить на
Java
1
TextView TxtNameDevice;
и добавить
Цитата Сообщение от Mikalai Посмотреть сообщение
txtNameDevice = (TextView)findViewById(R.id.TxtNameDevice);
в onCreate
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
24.01.2016, 16:05  [ТС]     Крэшится при запуске. Небольшой и простой код #6
Это логично. Я говорю про 2 вызов, для установки текста
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.01.2016, 17:07     Крэшится при запуске. Небольшой и простой код #7
AlexRu18, значит в разметке нет TextView с указанным id
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
24.01.2016, 17:25  [ТС]     Крэшится при запуске. Небольшой и простой код #8
Цитата Сообщение от YuraAAA Посмотреть сообщение
AlexRu18, значит в разметке нет TextView с указанным id
Если бы не было, то приложение бы продолжало крешится.

При выключенном Bluetooth всё нормально, при включенном крэшится с логом:

Кликните здесь для просмотра всего текста
Крэшится при запуске. Небольшой и простой код

Крэшится при запуске. Небольшой и простой код
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.01.2016, 17:30     Крэшится при запуске. Небольшой и простой код #9
AlexRu18, ещё раз. вызов метода setText у объекта, который null.
AlexRu18
24.01.2016, 17:38  [ТС]
  #10

Не по теме:

хоть об стену головой бейся, непонятно что делаю не так.

YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.01.2016, 17:49     Крэшится при запуске. Небольшой и простой код #11
AlexRu18, покажите исправленный код
Vladimirys
306 / 203 / 24
Регистрация: 16.01.2010
Сообщений: 575
24.01.2016, 18:48     Крэшится при запуске. Небольшой и простой код #12
Видимо, переменная - TxtNameDevice. Не видима в том месте где ей хотя присвоить значение.
И зачем, все в OnStart() пихать? Такая задача?
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
24.01.2016, 21:41  [ТС]     Крэшится при запуске. Небольшой и простой код #13
Цитата Сообщение от YuraAAA Посмотреть сообщение
исправленный код
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
package com.alexru18.bluetoothchat;
 
import android.bluetooth.*;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity {
 
    BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
    public TextView TxtNameDevice;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        TxtNameDevice = (TextView)findViewById(R.id.TxtNameDevice);
 
    }
 
    protected void onStart(){
        super.onStart();
 
      if(bluetooth.isEnabled()){
 
        //Bluetooth включен.
      }else{
 
        //Bluetooth выключен. Предложим включить
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        //startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
      }
 
        //Всплывающее сообщение о доступности Bluetooth
      String status;
      if(bluetooth.isEnabled()){
 
        String mydeviceaddress = bluetooth.getAddress();
        String mydevicename = bluetooth.getName();
        status = mydevicename + " : " + mydeviceaddress;
        TxtNameDevice.setText(mydevicename);
 
      }else{
 
        status = "Bluetooth выключен!";
      }
      Toast.makeText(this,status,Toast.LENGTH_LONG).show();
 
    }
 
}
и

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:id="@+id/TxtNameDevice"
        android:layout_width="match_parent"
        android:layout_height="50dp"/>
 
    <ListView
        android:id="@+id/ListChat"
        android:layout_below="@+id/TxtNameDevice"
        android:layout_width="fill_parent"
        android:layout_height="280dp"/>
......
Добавлено через 1 минуту
Цитата Сообщение от Vladimirys Посмотреть сообщение
И зачем, все в OnStart() пихать? Такая задача?
Я недавно в этой области занимаюсь и многого не знаю, буду признателен за ваш вариант
Vladimirys
306 / 203 / 24
Регистрация: 16.01.2010
Сообщений: 575
24.01.2016, 22:08     Крэшится при запуске. Небольшой и простой код #14
Создайте свой метод, в классе. И вызывайте, его. Если нужно именно OnStart() можно вызвать и оттуда. Вообще с системными методами нужно работать осторожно, ибо они не подвластные разработку.
XML
1
2
3
4
5
<ListView
        android:id="@+id/ListChat"
        android:layout_below="@+id/TxtNameDevice"
        android:layout_width="fill_parent"
        android:layout_height="280dp"/>
Вот тут не правильно = android:layout_below="@+id/TxtNameDevice" "@+" быть не должно, ибо ресурс добавлен ранее.
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
24.01.2016, 23:53  [ТС]     Крэшится при запуске. Небольшой и простой код #15
Всё та же штука..

/* Caused by: java.lang.NullPointerException
at
com.alexru18.bluetoothchat.MainActivity.onStart(MainActivity.java:45) */
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
25.01.2016, 00:00     Крэшится при запуске. Небольшой и простой код #16
Цитата Сообщение от AlexRu18 Посмотреть сообщение
TxtNameDevice = (TextView)findViewById(R.id.TxtNameDevice);
Сделайте так,
Java
1
2
TxtNameDevice = (TextView)findViewById(R.id.TxtNameDevice);
Log.d("MainActivity", "" + txtNameDevice);
и покажите что выведет
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
25.01.2016, 00:03  [ТС]     Крэшится при запуске. Небольшой и простой код #17
Крэшится при запуске. Небольшой и простой код
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
25.01.2016, 00:07     Крэшится при запуске. Небольшой и простой код #18
AlexRu18, тааааааааааааак. Ещё раз код в студию, я сейчас сам в тупик стану. Такое ощущение, что не вызывается onCreate. А лучше проект скиньте, мне уже самому интересно что там такое
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
25.01.2016, 00:09  [ТС]     Крэшится при запуске. Небольшой и простой код #19
BluetoothChat.zip
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2016, 00:15     Крэшится при запуске. Небольшой и простой код
Еще ссылки по теме:

[INSTALL_FAILED_INVALID_APK] - ошибка при запуске - Программирование Android
Запуская код на устройстве или на эмуляторе - получаю следующую ошибку: Uploading file local path:...

Проиграть звук при запуске - Программирование Android
Помогите проиграть ЛЮБОЙ звук в конце OnCreate! Пробовал пример из http://developer.alexanderklimov.ru/android/whosaidmeow.php ...

При запуске карты тормозит - Программирование Android
Подскажите, интегрирую карту Гугл в приложение. Так вот при запуске из меню, у меня вся программа подвисает на несколько секунд, как можно...

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


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

Или воспользуйтесь поиском по форуму:
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
25.01.2016, 00:15     Крэшится при запуске. Небольшой и простой код #20
AlexRu18, ну так, дружище, где в activity_main разметке это текстовое поле? Подозреваю, что должно быть
Java
1
setContentView(R.layout.chat_activity);
Yandex
Объявления
25.01.2016, 00:15     Крэшится при запуске. Небольшой и простой код
Ответ Создать тему
Опции темы

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