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

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

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

Ошибка при генерации числа - Android

28.02.2014, 16:37. Просмотров 586. Ответов 4
Метки нет (Все метки)

Пытаюсь написать программу для генерирования рандомных чисел. Для начала хотя бы от 0 до 9.
При нажатии кнопки Сгенерировать меня выбрасывает в главное меню моего приложения ("в приложении "asugas" произошла ошибка.")...
В чем же проблема? Мне кажется, что именно в строках:
Javascript
1
2
Random random = new Random();  
                int i = random.nextInt(9) + 1;
Вот код:
Javascript
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
package ru.mfa.develop.AllForLife; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 
 
 
 
public class Random extends Activity { 
     
    TextView RandomText;  
    Button btnRandom; 
     
    @Override 
      protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.random); 
         
         
        RandomText = (TextView) findViewById(R.id.RandomText);  
        btnRandom = (Button) findViewById(R.id.btnRandom);  
          
        OnClickListener oclBtnRandom = new OnClickListener(){  
            public void onClick(View v) {  
                  
                Random random = new Random();  
                int i = random.nextInt(9) + 1; 
                  
                RandomText.setText(i);  
            }  
        };  
        btnRandom.setOnClickListener(oclBtnRandom);  
         
         
         
      } 
 
    protected int nextInt(int i) { 
        // TODO Auto-generated method stub 
        return 0; 
    } 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2014, 16:37     Ошибка при генерации числа
Посмотрите здесь:

Ошибка при запуске Android
Ошибка при сворачивании Android
Ошибка при TabHost Android
Android Ошибка при нажатии
Ошибка при при смене активити Android
Android Ошибка в генерации файла APK
Android Ошибка при запуске VM VB
Ошибка при запуске Android
Ошибка при построение Android
Android Ошибка при компиляции
Ошибка при accept() Android
Android "Ошибка при синтаксическом анализе пакета" при скачивании файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
verylazy
Заблокирован
28.02.2014, 17:10     Ошибка при генерации числа #2
Скорее всего надо писать не RandomText.setText(i);
а так
Java
1
RandomText.setText(String.valueOf(i));
и строку
Java
1
Random random = new Random();
я бы вынес сюда
Java
1
2
3
TextView RandomText;  
Button btnRandom;
private Random random = new Random();
нет смысла создавать каждый раз новый объект при нажатии на кнопку
TemMax
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 6
28.02.2014, 21:32  [ТС]     Ошибка при генерации числа #3
Да, спасибо. Сделал все так, как вы и посоветовали.
Однако теперь выкидывает при переходе в раздел приложения "случайные числа"... вот такие дела

Добавлено через 3 часа 13 минут
не работает ничего...
verylazy
Заблокирован
28.02.2014, 23:36     Ошибка при генерации числа #4
покажите логи и исправленный код
с ними будет быстрее
TemMax
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 6
28.02.2014, 23:57  [ТС]     Ошибка при генерации числа #5
Новый код. Для рандомизатора сделал новое приложение(из старого пока убрал), но суть вся та же осталась.
Полный код:
Javascript
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
package com.rndmlife.prog;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends Activity {
    
    TextView tvOut;
    Button btnRandom;
    public MainActivity random = new MainActivity();
    
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tvOut = (TextView) findViewById(R.id.tvOut);
        btnRandom = (Button) findViewById(R.id.btnRandom);
        
        
        OnClickListener oclBtnRandom = new OnClickListener(){ 
            public void onClick(View v) { 
                 
                 
                int i = random.nextInt(9) + 1;
                 
                tvOut.setText(String.valueOf(i)); 
            } 
        }; 
        btnRandom.setOnClickListener(oclBtnRandom);
        
        
        
        
    }
 
    protected int nextInt(int i) {
        // TODO Auto-generated method stub
        return 0;
    }
 
    @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;
    }
 
}
Логи:

02-28 22:55:42.190: I/dalvikvm(16806): threadid=1: stack overflow on call to Ljava/lang/ref/Reference;.<init>:VLL
02-28 22:55:42.190: I/dalvikvm(16806): method requires 12+20+4=36 bytes, fp is 0x6d46a30c (12 left)
02-28 22:55:42.190: I/dalvikvm(16806): expanding stack end (0x6d46a300 to 0x6d46a000)
02-28 22:55:42.190: I/dalvikvm(16806): Shrank stack (to 0x6d46a300, curFrame is 0x6d46a340)
02-28 22:55:42.190: D/AndroidRuntime(16806): Shutting down VM
02-28 22:55:42.190: W/dalvikvm(16806): threadid=1: thread exiting with uncaught exception (group=0x415caba8)
02-28 22:55:42.210: D/dalvikvm(16806): GC_FOR_ALLOC freed 420K, 5% free 9130K/9584K, paused 17ms, total 17ms
02-28 22:55:42.240: D/dalvikvm(16806): GC_FOR_ALLOC freed 116K, 3% free 9360K/9644K, paused 13ms, total 13ms
02-28 22:55:42.260: D/dalvikvm(16806): GC_FOR_ALLOC freed 272K, 5% free 9385K/9832K, paused 14ms, total 14ms
02-28 22:55:42.280: D/dalvikvm(16806): GC_FOR_ALLOC freed 248K, 5% free 9404K/9832K, paused 12ms, total 12ms
02-28 22:55:42.280: E/AndroidRuntime(16806): FATAL EXCEPTION: main
02-28 22:55:42.280: E/AndroidRuntime(16806): Process: com.rndmlife.prog, PID: 16806
02-28 22:55:42.280: E/AndroidRuntime(16806): java.lang.StackOverflowError
02-28 22:55:42.280: E/AndroidRuntime(16806): at java.lang.ref.FinalizerReference.<init>(FinalizerReference.java:42)
02-28 22:55:42.280: E/AndroidRuntime(16806): at java.lang.ref.FinalizerReference.add(FinalizerReference.java:54)
02-28 22:55:42.280: E/AndroidRuntime(16806): at android.os.StrictMode$InstanceTracker.<init>(StrictMode.java:2244)
02-28 22:55:42.280: E/AndroidRuntime(16806): at android.os.StrictMode.trackActivity(StrictMode.java:1946)
02-28 22:55:42.280: E/AndroidRuntime(16806): at android.app.Activity.<init>(Activity.java:761)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:11)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:15)
02-28 22:55:42.280: E/AndroidRuntime(16806): at com.rndmlife.prog.MainActivity.<init>(MainActivity.java:
02-28 22:55:42.310: D/dalvikvm(16806): GC_FOR_ALLOC freed 530K, 6% free 9384K/9952K, paused 12ms, total 12ms
Yandex
Объявления
28.02.2014, 23:57     Ошибка при генерации числа
Ответ Создать тему
Опции темы

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