Logcat говорит: приложение может слишком много работать над своим основным потоком, а сообщение об ошибке говорит - строка StringtoReal.invalidReal(string.boolean): 63

Всякий раз, когда я запускаю свое приложение в эмуляторе, Logcat говорит - приложение может делать слишком много работы над своей основной нитью и сообщение об ошибке - строка StringtoReal.invalidReal(string.boolean): 63 здесь, я пытаюсь добавить значения 3 textviews и показать их общее количество в другом текстовом режиме, используя галочку на чекбокс (ы)

10-12 17:23:21.074: W/ActivityThread(700): 
Application com.suvendu.tutorial.cb is waiting for the debugger on port 8100...
10-12 17:23:21.134: I/System.out(700): Sending WAIT chunk
10-12 17:23:21.143: I/dalvikvm(700): Debugger is active
10-12 17:23:21.334: I/System.out(700): Debugger has connected
10-12 17:23:21.334: I/System.out(700): waiting for debugger to settle...
10-12 17:23:21.545: I/System.out(700): waiting for debugger to settle...
10-12 17:23:21.744: I/System.out(700): waiting for debugger to settle...
10-12 17:23:21.943: I/System.out(700): waiting for debugger to settle...
10-12 17:23:22.155: I/System.out(700): waiting for debugger to settle...
10-12 17:23:22.353: I/System.out(700): waiting for debugger to settle...
10-12 17:23:22.554: I/System.out(700): waiting for debugger to settle...
10-12 17:23:22.754: I/System.out(700): waiting for debugger to settle...
10-12 17:23:22.954: I/System.out(700): waiting for debugger to settle...
10-12 17:23:23.164: I/System.out(700): debugger has settled (1368)
10-12 17:23:25.243: I/Choreographer(700): Skipped 46 frames!  
The application may be  doing too much work on its main thread.
10-12 17:23:25.533: D/gralloc_goldfish(700): Emulator without GPU emulation detected.

Код действия: -

OnClickListener checkBoxListener;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    text_regular_code=(TextView)findViewById(R.id.text_regular);
    text_small_code=(TextView)findViewById(R.id.text_small);
    text_large_code=(TextView)findViewById(R.id.text_large);

    text_check_regular_code=(TextView)findViewById(R.id.text_check_regular);
    text_check_small_code=(TextView)findViewById(R.id.text_check_small);
    text_check_large_code=(TextView)findViewById(R.id.text_check_large);

    text_price_regular_code=(TextView)findViewById(R.id.text_price_regular);
    text_price_small_code=(TextView)findViewById(R.id.text_price_small);
    text_price_large_code=(TextView)findViewById(R.id.text_price_large);



    edit_qty_regular_code=(EditText)findViewById(R.id.edit_qty_regular);
    edit_qty_small_code=(EditText)findViewById(R.id.edit_qty_small);
    edit_qty_large_code=(EditText)findViewById(R.id.edit_qty_large);



    chk_regular_code=(CheckBox)findViewById(R.id.chk_regular);
    chk_small_code=(CheckBox)findViewById(R.id.chk_small);
    chk_large_code=(CheckBox)findViewById(R.id.chk_large);



    checkBoxListener =new OnClickListener() {

        public void onClick(View v) {

            if(chk_regular_code.isChecked())
            {
                text_price_regular_code.setText
                (text_regular_code.getText().toString());
                text_check_regular_code.setText
                (chk_regular_code.getText().toString());

            }
            else {
                text_price_regular_code.setText("");
                text_check_regular_code.setText("");
                edit_qty_regular_code.setText("");
            }


            if(chk_small_code.isChecked())
            {
                text_price_small_code.setText
                (text_small_code.getText().toString());
                text_check_small_code.setText
                (chk_small_code.getText().toString());

            }
            else {
                text_price_small_code.setText("");
                text_check_small_code.setText("");
                edit_qty_small_code.setText("");
            }

            if(chk_large_code.isChecked())
            {
                text_price_large_code.setText
                (text_large_code.getText().toString());
                text_check_large_code.setText
                (chk_large_code.getText().toString());

            }
            else {
                text_price_large_code.setText("");
                text_check_large_code.setText("");
                edit_qty_large_code.setText("");
            }
            // whenever i use below code getting error "start"

            x=Double.parseDouble
                    (text_price_regular_code.getText().toString());
            y=Double.parseDouble
                    (text_price_small_code.getText().toString());
            z=Double.parseDouble
                    (text_price_large_code.getText().toString());           
            a=x+y+z;
            text_total_code.setText(Double.toString(a));
            // whenever i use below code getting error "end"
        }
    };

    chk_regular_code.setOnClickListener(checkBoxListener);
    chk_small_code.setOnClickListener(checkBoxListener);
    chk_large_code.setOnClickListener(checkBoxListener);
}

Ответ 1

Я бы проигнорировал это. Сообщение, которое вы видите, важно на телефонах, но не в эмуляторе. Эмулятор очень медленный. Ничто из того, что вы делаете, не требует ресурсов, поэтому ваше приложение должно выполнять номинально на устройстве.

На устройстве вы можете использовать параметры разработчика на некоторых телефонах, чтобы включить видимый сигнал, что вы можете делать слишком много работы на переднем плане. На моем Galaxy Nexus я могу перейти к настройкам > Параметры разработчикa > Режим Strict включен. При проверке этого поля красная рамка будет мигать вокруг любого приложения, когда оно вызывает сообщение, подобное тому, что вы отправили из вашего логарифма.

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