Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
#1

Когда жму Назад выскакивает ошибка Unfortunately <my app> has stopped

27.08.2014, 01:13. Просмотров 914. Ответов 2
Метки нет (Все метки)

Здравствуйте! Пишу игру под андроид. Все работает хорошо за исключением одного момента: когда приложение запущенно, если нажать Назад на эмуляторе, то вылазит ошибка: Unfortunately <имя приложения> has stopped.

Краткий пример:
Кликните здесь для просмотра всего текста

GameView.java:
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
package com.example.test;
 
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
 
 public class GameView extends SurfaceView 
 {  
    private Bitmap bmp;
    private SurfaceHolder holder;
    private GameManager thread;
 
    public GameView(Context context) 
    {
          super(context);
          thread = new GameManager(this);
          holder = getHolder();
          holder.addCallback(new SurfaceHolder.Callback() 
          {
                 public void surfaceDestroyed(SurfaceHolder holder) 
                 {
                        boolean retry = true;
                        thread.setRunning(false);
                        while (retry) 
                        {
                               try 
                               {
                                     thread.join();
                                     retry = false;
                               } 
                               catch (InterruptedException e) 
                               {
                               }
                        }
                 }
 
                 public void surfaceCreated(SurfaceHolder holder) 
                 {
                        thread.setRunning(true);
                        thread.start();
                 }
 
                 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
                 {
                 }
          });
          
          bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    }
 
    protected void onDraw(Canvas canvas) 
    {
          canvas.drawColor(Color.BLACK);
          canvas.drawBitmap(bmp, 10, 10, null);
    }
}
GameManager.java:
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
package com.example.test;
 
import android.graphics.Canvas;
 
public class GameManager  extends Thread 
{
    private GameView view;
    private boolean running = false;
   
    public GameManager(GameView view) 
    {
          this.view = view;
    }
 
    public void setRunning(boolean run) 
    {
          running = run;
    }
 
    @Override
    public void run() 
    {
          while (running) 
          {
                 Canvas canvas = null;
                 try 
                 {
                        canvas = view.getHolder().lockCanvas();
                        synchronized (view.getHolder()) 
                        {
                               view.onDraw(canvas);
                        }
                 }
                 finally 
                 {
                        if (canvas != null) 
                        {
                            view.getHolder().unlockCanvasAndPost(canvas);
                        }
                 }
          }
    }
}


Скрин с логами:
Кликните здесь для просмотра всего текста
Когда жму Назад выскакивает ошибка Unfortunately <my app> has stopped


Заранее огромное спасибо!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2014, 01:13
Ответы с готовыми решениями:

Ошибка Unfortunately, App has stopped при понижении версии Android
Делал приложение изначально на эмуляторе API 27 с Android 7, всё работало...

Ошибка unfortunately, nameProject has stopped
Когда запускаю приложение в эмуляторе android studio не выдает ошибки, но в...

Ошибка unfortunately, nameProject has stopped
Уже писал пост про это, но немного покопался и откинул немного лишнего, но все...

ошибка process has stopped unexpectedly
Здорова еще раз. Я сегодня обращался к Вамб вроде решил проблему первую. Теперь...

Ничего не происходит, когда жму ctrl+F9
Вычислить произведение элементов одномерного массива. Нечего не происходит...

2
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
27.08.2014, 19:31 #2
Цитата Сообщение от SlowAR Посмотреть сообщение
protected void onDraw(Canvas canvas)
* * {
* * * * * canvas.drawColor(Color.BLACK);
* * * * * canvas.drawBitmap(bmp, 10, 10, null);
* * }

на

Java
1
2
3
4
5
6
7
protected void onDraw(Canvas canvas) 
 {
      if (canvas != null) {
          canvas.drawColor(Color.BLACK);
        canvas.drawBitmap(bmp, 10, 10, null);
      }
}
0
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
27.08.2014, 20:48  [ТС] #3
ошибка вылазить перестала, но если в приложении несколько активити, то предыдущее перестает отвечать и приложение все равно вылетает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2014, 20:48

Две функции работают по отдельности, когда вместе выскакивает ошибка
Добрый день! Две функции работают по отдельности, когда вместе выскакивает...

Когда пытаюсь заполнить данными таблицы, везде, выскакивает такая ошибка
Когда пытаюсь заполнить данными таблицы, везде, (во всех таблицах с FK)...

Когда запускаю сервер на одной машине, а клиент на другой, то выскакивает ошибка: error 10061
Привет всем, решил написать маленький чат для себя. Сделал две программы, одна...


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

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

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