Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
1

Приложение, Андройд, ошибка

25.11.2012, 18:26. Просмотров 1303. Ответов 11
Метки нет (Все метки)

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
110
111
112
113
114
115
116
package com.example.tictactoe;
 
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
 
public class doska extends Activity implements OnClickListener {
    
 
    Button B11;
    Button B12;
    Button B13;
    Button B21;
    Button B22;
    Button B23;
    Button B31;
    Button B32;
    Button B33;
    Button bstart;
    static Button Btnn[][];
    int i;
    int j; 
    static int Ch[][];
    
    
    
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.doska);
    
    bstart = (Button) findViewById(R.id.bstart);
     bstart.setOnClickListener(this);
     
     Btnn = new Button[][] {
             { B11 = (Button) findViewById(R.id.b11),
     B12 = (Button) findViewById(R.id.b12),
     B13 = (Button) findViewById(R.id.b13)
     },
            { B21 = (Button) findViewById(R.id.b21),
     B22 = (Button) findViewById(R.id.b22),
     B23 = (Button) findViewById(R.id.b23)
     },
            { B31 = (Button) findViewById(R.id.b31),
     B32 =(Button) findViewById(R.id.b32),
     B33 = (Button) findViewById(R.id.b33)
     }
     };
     
     
     Ch = new int[][] {
             {0,0,0},
             {0,0,0},
             {0,0,0},
     };
    
     
     
    
     B11.setOnClickListener(this);
     B12.setOnClickListener(this);
     B13.setOnClickListener(this);
     B21.setOnClickListener(this);
     B22.setOnClickListener(this);
     B23.setOnClickListener(this);
     B31.setOnClickListener(this);
     B32.setOnClickListener(this);
     B33.setOnClickListener(this);
    
    
     
     Typeface fonto = Typeface.createFromAsset(this.getAssets(), "fonts/fonto.TTF");
     bstart.setTypeface(fonto);
  }
  
  
  
 
  
  
  public void onClick(View v) { 
      
      
      
         for( int i = 0; i<3; i++){
              for( int j = 0; j<3; j++){     
     if (v.getId() == Btnn[i][j].getId()){
          Btnn[i][j].setClickable(false);
          Ch[i][j] = 1;
          Comp.Comp1();
        //B12.setImageResource(R.drawable.нолик);
        // проверяется победа, ходит компьютер, проверяется победа. 
          
          
          
     }
    
              }
         }
    if (v.getId() == R.id.bstart){
         for( int i = 0; i<3; i++){
              for( int j = 0; j<3; j++){
              Btnn[i][j].setClickable(true);}
          }
    }
     
         
 
      }
}


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
package com.example.tictactoe;
 
//import java.util.Random;
 
public class Comp {
    public static int t = 1;
    public static int q = 1;
    
    
    
 
    public static void Comp1() {
        
         if (doska.Ch[1][1]==1) {
            // B22.setImageResource(R.drawable.крестик);
             doska.Btnn[1][1].setClickable(false);
             doska.Ch[t][q]=2;
             
         }
         
         else {
            
          
             while((doska.Ch[t][q]==1)||(doska.Ch[t][q]==2)){
         t = (int) Math.random()%3;
         q = (int) Math.random()%3;
             }
             doska.Btnn[t][q].setClickable(false);
                // Btnn[t][q].getId().setImageResource(R.drawable.крестик);
                 doska.Ch[t][q]=2;
             
            
         }
    
    }
}

имеется два клааса.
пишу игру крестики -нолики.
при вызове в первом классе метода из второго класса, приложение на эмуляторе, виснет и выходит ошибка.
2 класс - интеллект компьютера в игре
1 класс - активити с самой игрой, хочу передать ход компьютера на активити.
строго не судите, с явой знакомлюсь вторую неделю))

Добавлено через 3 часа 16 минут
кнопки создавал не програмно а визуально заранее, массив из нулей нужен для будущей проверки на победителя.
вся проблема в методе который я вызываю, без него все нормально. хотя ошибок эклипс не выдает.
буду рад любой помощи.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 18:26
Ответы с готовыми решениями:

Ошибка в коде, из-за которой вылетает приложение
Происходит ошибка и приложение вылетает (останавливается). package...

Не могу запустить плагин Eclipse для написания ПО для андройд
Перечитал кучу мануал, и наших, и забугорных. Устанавливал, переустанавливал,...

Internet (ошибка доступа) приложение не заходит в интернет
Написал приложение, на эмуляторе все прекрасно работает, заходит в интернет и...

Eclipse не запускает моё первое Android-приложение. В чём ошибка?
Пытаюсь запустить, но Eclipse не запускает приложение в эмуляторе. Ошибок не...

Допиленное узкоспециализированное приложение или неповоротливое многофункциональное приложение?
Если вопрос про &quot;что нужно знать?&quot; висит, то и этот должен зайти. Появилась...

11
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 19:19 2
логи в студию.
0
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 19:27  [ТС] 3
Вот логи, лог debug и лог error.
0
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 19:33  [ТС] 4
вот они))
0
Миниатюры
Приложение, Андройд, ошибка   Приложение, Андройд, ошибка  
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 19:39 5
не вижу я здесь екзепшена, воспроизведите ошибку и скопируйте логи нормально - как текст.
0
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 20:03  [ТС] 6
это все логи с нажатия на доску игры до вылета ошибки.
в ErrorLog новый записей не появляется. все какб ы нормально.
дело то ли в бесконечном цикле, то ли в нехватке памяти эмулятора на мой взгляд.
0
Миниатюры
Приложение, Андройд, ошибка   Приложение, Андройд, ошибка   Приложение, Андройд, ошибка  

V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 20:06 7
выложите проект, завтра проверю у себя.
0
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 20:12  [ТС] 8
вот проект.
0
Вложения
Тип файла: rar tictactoe.rar (1.37 Мб, 11 просмотров)
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.11.2012, 20:07 9
Цитата Сообщение от metrolog Посмотреть сообщение
виснет и выходит ошибка
да не ошибка это никакая, это просто предложение закрыть активити, так как оно не отвечает потому что зацикливается здесь
Java
1
2
3
4
while ((doska.Ch[i][j] == 1) || (doska.Ch[i][j] == 2)) {
                i = (int) Math.random() % 3;
                j = (int) Math.random() % 3;
            }
смотрите описание метода Math.random() - Returns a pseudo-random double n, where n >= 0.0 && n < 1.0
соответственно i и j всегда будут равны 0 и единожды выполненное условия вхождение в while зацикливывает программу.
1
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
27.11.2012, 00:35  [ТС] 10
спасибо большое.
Еще вопрос.
Как сделать чтобы на эмуляторах визуально программа смотрелась одинаково? вроде размеры кнопок через dp прописывал, но все равно не очень красиво смотрится.
смотрел примеры данной программы там игровое поле создают программно, в чем приимущества такого создания? не легче их заранее разместить?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.11.2012, 01:28 11
http://developer.android.com/intl/ru...s_support.html
1
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
27.11.2012, 11:37 12
Заранее извиняюсь за небольшой оффтоп, но, раз уж здесь рассматривают логи, я хотел бы задать такой вопрос:
Я совсем недавно начал изучать разработку под Андроид, пока всё получается без разбора логов, но, тем не менее, в один прекрасный день я к ним всё равно обращусь. Так вот, - в какой литературе, или на каких ресурсах можно почитать о структуре лог-записей, сути сообщений в них, и вообще - о том, как на основании этой информации делать вывод об имеющихся ошибках?

Спасибо!
0
27.11.2012, 11:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 11:37

Ошибка "приложение isn't responding"
Здравствуйте, при запуске приложения на avd API25 возникает такая ошибка Но...

Узнать приложение которое запустило моё приложение
Приветствую всех! Помогите разобраться. Есть ли возможность узнать, что за...

Сообщение "приложение остановлено" постоянно, даже когда приложение вообще не запущено
Собственно ,сабж в топике


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

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

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