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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 18:26     Приложение, Андройд, ошибка #1
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 минут
кнопки создавал не програмно а визуально заранее, массив из нулей нужен для будущей проверки на победителя.
вся проблема в методе который я вызываю, без него все нормально. хотя ошибок эклипс не выдает.
буду рад любой помощи.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 19:19     Приложение, Андройд, ошибка #2
логи в студию.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 19:27  [ТС]     Приложение, Андройд, ошибка #3
Вот логи, лог debug и лог error.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 19:33  [ТС]     Приложение, Андройд, ошибка #4
вот они))
Миниатюры
Приложение, Андройд, ошибка   Приложение, Андройд, ошибка  
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 19:39     Приложение, Андройд, ошибка #5
не вижу я здесь екзепшена, воспроизведите ошибку и скопируйте логи нормально - как текст.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 20:03  [ТС]     Приложение, Андройд, ошибка #6
это все логи с нажатия на доску игры до вылета ошибки.
в ErrorLog новый записей не появляется. все какб ы нормально.
дело то ли в бесконечном цикле, то ли в нехватке памяти эмулятора на мой взгляд.
Миниатюры
Приложение, Андройд, ошибка   Приложение, Андройд, ошибка   Приложение, Андройд, ошибка  

V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 20:06     Приложение, Андройд, ошибка #7
выложите проект, завтра проверю у себя.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 20:12  [ТС]     Приложение, Андройд, ошибка #8
вот проект.
Вложения
Тип файла: rar tictactoe.rar (1.37 Мб, 11 просмотров)
V0v1k
1157 / 981 / 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 зацикливывает программу.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
27.11.2012, 00:35  [ТС]     Приложение, Андройд, ошибка #10
спасибо большое.
Еще вопрос.
Как сделать чтобы на эмуляторах визуально программа смотрелась одинаково? вроде размеры кнопок через dp прописывал, но все равно не очень красиво смотрится.
смотрел примеры данной программы там игровое поле создают программно, в чем приимущества такого создания? не легче их заранее разместить?
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.11.2012, 01:28     Приложение, Андройд, ошибка #11
http://developer.android.com/intl/ru...s_support.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 11:37     Приложение, Андройд, ошибка
Еще ссылки по теме:

Android Нечто про Андройд и С++
Включение gps на андройд Android
Приложение на Андройд Android
Возможно ли программировать игры на самом Андройд устройстве? Android
Умный редирект на сайте установленном на андройд Android

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

Или воспользуйтесь поиском по форуму:
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
27.11.2012, 11:37     Приложение, Андройд, ошибка #12
Заранее извиняюсь за небольшой оффтоп, но, раз уж здесь рассматривают логи, я хотел бы задать такой вопрос:
Я совсем недавно начал изучать разработку под Андроид, пока всё получается без разбора логов, но, тем не менее, в один прекрасный день я к ним всё равно обращусь. Так вот, - в какой литературе, или на каких ресурсах можно почитать о структуре лог-записей, сути сообщений в них, и вообще - о том, как на основании этой информации делать вывод об имеющихся ошибках?

Спасибо!
Yandex
Объявления
27.11.2012, 11:37     Приложение, Андройд, ошибка
Ответ Создать тему
Опции темы

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