Завершение работы приложения при тестировании на AVD - PullRequest
0 голосов
/ 04 ноября 2011

Я пытаюсь изучить Android, и я делаю простое упражнение, включающее две кнопки и текстовое представление. Однако, когда я пытаюсь запустить приложение в эмуляторе, приложение принудительно закрывается.

Ниже приведен код:

public class CambiarColorActivity extends Activity 
implements View.OnClickListener {
    Button btnRed;
    Button btnBlue;
    TextView text;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        setContentView(R.layout.main);
        TextView text = (TextView)findViewById(R.id.textView1);
        btnRed=(Button)findViewById(R.id.button1);
        btnBlue=(Button)findViewById(R.id.button2);                 
        btnRed.setOnClickListener(this);
        btnBlue.setOnClickListener(this);                   
    }

    public void onClick(View view) {
        changeColor();
    }

    private void changeColor() {
        if(btnRed.isPressed()) {
            text.setBackgroundResource(Color.RED);
        } else {
            text.setBackgroundResource(Color.BLUE);                     
        }
    }
}

И вот ошибки, которые я нашел в журнале в Eclipse:

11-04 11:34:42.377: E/AndroidRuntime(376): Caused by: java.lang.NullPointerException
11-04 11:34:42.377: E/AndroidRuntime(376): at mi.entrenamiento.OrejanoX.CambiarColorActivity.onCreate(CambiarColorActivity.java:25)

Вот моя часть моего main.xml

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/button1"
        style="@style/red"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:drawableLeft="@drawable/red"
        android:text="@string/red" />

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:drawableLeft="@drawable/blue"
        android:text="@string/azul" />

</LinearLayout>

Любая помощь будет приветствоваться.

Спасибо и всего наилучшего, Мауро.

Ответы [ 3 ]

2 голосов
/ 04 ноября 2011

Потому что ошибка

11-04 11: 34: 42.377: E / AndroidRuntime (376): вызвано: java.lang.NullPointerException 11-04 11: 34: 42.377: E / AndroidRuntime (376): в mi.entrenamiento.OrejanoX.CambiarColorActivity.onCreate (CambiarColorActivity.java:25)

, пожалуйста, посмотрите, что находится в строке 25 вашего файла.

Полагаю, это одна из следующих строк.

btnRed.setOnClickListener(this);
btnBlue.setOnClickListener(this);

, поэтому, пожалуйста, проверьте в main.xml, установлен ли для двух кнопок android: id.

1 голос
/ 04 ноября 2011

Это говорит о том, что вы получаете исключение NullPointerException. Я предполагаю, что это из-за того, что btnRed или btnBlue были нулевыми. Проверьте и посмотрите, получите ли вы действительное значение от findViewById.

0 голосов
/ 05 ноября 2011

Я нашел ошибку, это была эта строка в main.xml

style="@style/red"

Я удалил и все было хорошо.

...