Ошибка приложения Java setText make

#java #android #exception

#java #Android #исключение

Вопрос:

У меня есть простое приложение в Android main.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:id="@ id/id_txt"
    android:text="go"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
</LinearLayout>
  

и TestActivity.java

 package test.android;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class TestActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView t = (TextView) findViewById(R.id.id_txt);
        t.setText("gone");
    }
}
  

и после выполнения в эмуляторе Android появляется сообщение The application Test has stopped unexpectedly. Please try again later о получении, но почему??

Комментарии:

1. Вам нужно получить журналы с устройства или эмулятора: «adb logcat» должен сделать свое дело, в журнале будет трассировка стека. Или вы можете использовать представление «Показать вид -> Другое -> Android -> LogCat» в Eclipse с подключенным устройством.

2. LogCat показывает 09-28 19:44:59.724: ERROR/dalvikvm(1727): Unable to open stack trace file '/data/anr/traces.txt': Permission denied , как изменить разрешения?

3. вы не забыли объявить свою активность в манифесте?

4. Если вы говорите о AndroidManifest.xml файле, я ничего не сделал. Просьба написать, что должно быть сделано

5. Пожалуйста, включите больше файла журнала и копию вашего AndroidManifest.xml досье.

Ответ №1:

Вы неправильно переопределяете onCreate(...) метод. Это должно быть следующим…

 // NOTE: Use @Override and also the method is 'protected' and not 'public'
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TextView t = (TextView) findViewById(R.id.id_txt);
    t.setText("gone");
}
  

Комментарии:

1. Его структура по умолчанию, которая была создана, является eclipse

2. Ну, eclipse сделал это неправильно… developer.android.com/reference/android/app /…