Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Алерон
5 / 5 / 2
Регистрация: 13.10.2009
Сообщений: 542
#1

Часы для Android и ошибка "unfortunately clock has stopped" - Программирование Android

01.06.2014, 22:33. Просмотров 1837. Ответов 4
Метки нет (Все метки)

Задали лабораторную по создания приложения часов для андроид. По скольку ни с андройдом ни с явой не работал, пытаюсь разобраться.
Написал приложение, но при запуске почему-то пишет "unfortunately clock has stopped". В чём ошибка не понимаю
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
package com.example.clock;
 
import java.util.Timer;
import java.util.TimerTask;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
 
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.os.Build;
 
 
public class MainActivity extends ActionBarActivity {
    public TextView MTV = (TextView)findViewById(R.id.TimerText);
    public Timer T1 = new Timer();
    public class MyTask extends TimerTask {
        public void run() {
            MTV.setText(getDateTime());
            
        
        }
    }
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TimerTask task = new MyTask();
        T1.schedule( task, 1000);
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
    }
    private String getDateTime() {
 
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 
        Date date = new Date();
 
        return dateFormat.format(date);
 
    }
 
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {
 
        public PlaceholderFragment() {
        }
 
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            return rootView;
        }
    }
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 22:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Часы для Android и ошибка "unfortunately clock has stopped" (Программирование Android):

Новая реализация findViewById и ошибка "Unfortunately, MyApp has been stopped"
Здравствуйте, хотел немного сократить код программы, создав метод, который...

Connect to MS SQL и ошибка "unfortunately has stopped"
Привет! Ребята выручите пожалуйста. Скачал jtds, вроде прилинковал к проекту......

При запуске приложения на эмуляторе: "unfortunately appname has stopped"
доброго времени суток, друзья, помогите найти ошибку, при запуске приложения...

Как отловить причину "unfortunately, application has stopped" на эмуляторе?
Приветствую всех! Помогите разобраться. Пытаюсь убрать заголовок ...

Как исправить ошибку "Unfortunately, <Program> has stopped"?
Я только начал изучать программирование программ для Android и сразу же после...

Ошибка "Activity class {com.Android.System/com.Android.System.MainActivity} does not exist"
Starting: Intent { act=android.intent.action.MAIN cat=...

4
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
02.06.2014, 04:45 #2
Вы намудрили с таймером...

Java
1
2
3
4
5
6
7
8
9
10
11
private Timer timer_1 = new Timer();
private Handler Tread1_Handler = new Handler();
 
...
 
// в ОнКрейт
timer_1.schedule(new TimerTask() { @Override public void run() {
 Tread1_Handler.post(new Runnable() {public void run() {
   ((TextView)findViewById(R.id.TimerText)).setText(getDateTime());
 }});
}}, 0, 1000);
1
Алерон
5 / 5 / 2
Регистрация: 13.10.2009
Сообщений: 542
03.06.2014, 13:33  [ТС] #3
Всё та же unfortunately has stopped.
Ещё: в чём различие между activity И fragment main ?
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
package com.example.time;
 
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
 
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.text.format.DateFormat;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.os.Build;
 
public class MainActivity extends ActionBarActivity {
    public TextView MTV = (TextView)findViewById(R.id.TimerTextA);
    private Timer timer_1 = new Timer();
    private Handler Tread1_Handler = new Handler();
    private String getDateTime() {   
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();
        return dateFormat.format(date);
 
    }
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        timer_1.schedule(new TimerTask() { @Override public void run() {
             Tread1_Handler.post(new Runnable() {public void run() {
               ((TextView)findViewById(R.id.TimerTextA)).setText(getDateTime());
             }});
            }}, 0, 1000);
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {
 
        public PlaceholderFragment() {
        }
 
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            return rootView;
        }
    }
 
}
06-03 05:23:50.260: E/AndroidRuntime(786): FATAL EXCEPTION: main
06-03 05:23:50.260: E/AndroidRuntime(786): Process: com.example.time, PID: 786
06-03 05:23:50.260: E/AndroidRuntime(786): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.time/com.example.time.MainActivity}: java.lang.NullPointerException
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.ActivityThread.access$800(ActivityThread.java:135)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.os.Handler.dispatchMessage(Handler.java:102)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.os.Looper.loop(Looper.java:136)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-03 05:23:50.260: E/AndroidRuntime(786): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 05:23:50.260: E/AndroidRuntime(786): at java.lang.reflect.Method.invoke(Method.java:515)
06-03 05:23:50.260: E/AndroidRuntime(786): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-03 05:23:50.260: E/AndroidRuntime(786): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-03 05:23:50.260: E/AndroidRuntime(786): at dalvik.system.NativeStart.main(Native Method)
06-03 05:23:50.260: E/AndroidRuntime(786): Caused by: java.lang.NullPointerException
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.Activity.findViewById(Activity.java:1884)
06-03 05:23:50.260: E/AndroidRuntime(786): at com.example.time.MainActivity.<init>(MainActivity.java:23)
06-03 05:23:50.260: E/AndroidRuntime(786): at java.lang.Class.newInstanceImpl(Native Method)
06-03 05:23:50.260: E/AndroidRuntime(786): at java.lang.Class.newInstance(Class.java:1208)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
06-03 05:23:50.260: E/AndroidRuntime(786): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
06-03 05:23:50.260: E/AndroidRuntime(786): ... 11 more
06-03 05:26:13.335: E/AndroidRuntime(1072): FATAL EXCEPTION: main
06-03 05:26:13.335: E/AndroidRuntime(1072): Process: com.example.time, PID: 1072
06-03 05:26:13.335: E/AndroidRuntime(1072): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.time/com.example.time.MainActivity}: java.lang.NullPointerException
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.ActivityThread.access$800(ActivityThread.java:135)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.os.Handler.dispatchMessage(Handler.java:102)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.os.Looper.loop(Looper.java:136)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-03 05:26:13.335: E/AndroidRuntime(1072): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 05:26:13.335: E/AndroidRuntime(1072): at java.lang.reflect.Method.invoke(Method.java:515)
06-03 05:26:13.335: E/AndroidRuntime(1072): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-03 05:26:13.335: E/AndroidRuntime(1072): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-03 05:26:13.335: E/AndroidRuntime(1072): at dalvik.system.NativeStart.main(Native Method)
06-03 05:26:13.335: E/AndroidRuntime(1072): Caused by: java.lang.NullPointerException
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.Activity.findViewById(Activity.java:1884)
06-03 05:26:13.335: E/AndroidRuntime(1072): at com.example.time.MainActivity.<init>(MainActivity.java:23)
06-03 05:26:13.335: E/AndroidRuntime(1072): at java.lang.Class.newInstanceImpl(Native Method)
06-03 05:26:13.335: E/AndroidRuntime(1072): at java.lang.Class.newInstance(Class.java:1208)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
06-03 05:26:13.335: E/AndroidRuntime(1072): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
06-03 05:26:13.335: E/AndroidRuntime(1072): ... 11 more
06-03 05:26:28.135: E/AndroidRuntime(1094): FATAL EXCEPTION: main
06-03 05:26:28.135: E/AndroidRuntime(1094): Process: com.example.time, PID: 1094
06-03 05:26:28.135: E/AndroidRuntime(1094): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.time/com.example.time.MainActivity}: java.lang.NullPointerException
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.ActivityThread.access$800(ActivityThread.java:135)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.os.Handler.dispatchMessage(Handler.java:102)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.os.Looper.loop(Looper.java:136)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-03 05:26:28.135: E/AndroidRuntime(1094): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 05:26:28.135: E/AndroidRuntime(1094): at java.lang.reflect.Method.invoke(Method.java:515)
06-03 05:26:28.135: E/AndroidRuntime(1094): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-03 05:26:28.135: E/AndroidRuntime(1094): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-03 05:26:28.135: E/AndroidRuntime(1094): at dalvik.system.NativeStart.main(Native Method)
06-03 05:26:28.135: E/AndroidRuntime(1094): Caused by: java.lang.NullPointerException
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.Activity.findViewById(Activity.java:1884)
06-03 05:26:28.135: E/AndroidRuntime(1094): at com.example.time.MainActivity.<init>(MainActivity.java:23)
06-03 05:26:28.135: E/AndroidRuntime(1094): at java.lang.Class.newInstanceImpl(Native Method)
06-03 05:26:28.135: E/AndroidRuntime(1094): at java.lang.Class.newInstance(Class.java:1208)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
06-03 05:26:28.135: E/AndroidRuntime(1094): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
06-03 05:26:28.135: E/AndroidRuntime(1094): ... 11 more
06-03 05:29:30.885: E/AndroidRuntime(1142): FATAL EXCEPTION: main
06-03 05:29:30.885: E/AndroidRuntime(1142): Process: com.example.time, PID: 1142
06-03 05:29:30.885: E/AndroidRuntime(1142): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.time/com.example.time.MainActivity}: java.lang.NullPointerException
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.ActivityThread.access$800(ActivityThread.java:135)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.os.Handler.dispatchMessage(Handler.java:102)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.os.Looper.loop(Looper.java:136)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-03 05:29:30.885: E/AndroidRuntime(1142): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 05:29:30.885: E/AndroidRuntime(1142): at java.lang.reflect.Method.invoke(Method.java:515)
06-03 05:29:30.885: E/AndroidRuntime(1142): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-03 05:29:30.885: E/AndroidRuntime(1142): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-03 05:29:30.885: E/AndroidRuntime(1142): at dalvik.system.NativeStart.main(Native Method)
06-03 05:29:30.885: E/AndroidRuntime(1142): Caused by: java.lang.NullPointerException
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.Activity.findViewById(Activity.java:1884)
06-03 05:29:30.885: E/AndroidRuntime(1142): at com.example.time.MainActivity.<init>(MainActivity.java:23)
06-03 05:29:30.885: E/AndroidRuntime(1142): at java.lang.Class.newInstanceImpl(Native Method)
06-03 05:29:30.885: E/AndroidRuntime(1142): at java.lang.Class.newInstance(Class.java:1208)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
06-03 05:29:30.885: E/AndroidRuntime(1142): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
06-03 05:29:30.885: E/AndroidRuntime(1142): ... 11 more
0
Алерон
5 / 5 / 2
Регистрация: 13.10.2009
Сообщений: 542
04.06.2014, 14:27  [ТС] #4
Вроде бы ошибка с потоками, но где именно?
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
04.06.2014, 15:34 #5
Лучший ответ Сообщение было отмечено Алерон как решение

Решение

Цитата Сообщение от Алерон Посмотреть сообщение
public TextView MTV = (TextView)findViewById(R.id.TimerTextA);
null тут.

Вообще не понятно, как Вы это делаете вне методов...это надо перенести в onCreate после setContentView
1
04.06.2014, 15:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 15:34
Привет! Вот еще темы с решениями:

Исправить ошибку "Unfortunately appname has stopped"
Посоветуйте как можно обнаружить причину ошибки &quot;Unfortunatellya Battle has...

Ошибка "cannot find symbol variable bs" (Android Studio)
Подскажите. @Override protected void onCreate(Bundle savedInstanceState)...

Ошибка в Android Studio: "x86 emulation currently requires hardware acceleration"
C:\Users\karr\AppData\Local\Android\sdk\tools\emulator.exe -netdelay none...

Ошибка при сборке "This version of Android Studio is incompatible with the Gradle Plugin used"
Сегодня обновил студию, теперь при сборке проекта вылетает с ошибкой: Error...


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

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

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