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

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

Войти
Регистрация
Восстановить пароль
 
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
#1

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

27.08.2014, 01:13. Просмотров 814. Ответов 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


Заранее огромное спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2014, 01:13     Когда жму Назад выскакивает ошибка Unfortunately <my app> has stopped
Посмотрите здесь:
Android ошибка process has stopped unexpectedly
Android Часы для Android и ошибка "unfortunately clock has stopped"
Новая реализация findViewById и ошибка "Unfortunately, MyApp has been stopped" Android
Connect to MS SQL и ошибка "unfortunately has stopped" Android
При изменении настройки в приложении выскакивает ошибка Android
Почему после выхода из приложения выскакивает ошибка? Android
Ошибка при добавлении файла в очередь загрузки (android.app.DownloadManager) Android
Android Unfortunately has stopped
Android Unfortunately has stopped
unfortunately has stopped android Android
Android Unfortunately has stopped, что делать?
Android AndroVM. Unfortunately activity has stopped

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.08.2014, 19:31     Когда жму Назад выскакивает ошибка Unfortunately <my app> has stopped #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);
      }
}
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
27.08.2014, 20:48  [ТС]     Когда жму Назад выскакивает ошибка Unfortunately <my app> has stopped #3
ошибка вылазить перестала, но если в приложении несколько активити, то предыдущее перестает отвечать и приложение все равно вылетает.
Ответ Создать тему
Опции темы

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