К сожалению приложение перестало работать

Я новичок в разработке приложений для Android. Я делал это учебное приложение. Это очень простой. Он добавляет один и вычитает один из счетчика. Когда я запускаю его в эмуляторе, он говорит: «К сожалению, руководство перестало работать». В коде отсутствуют ошибки. Уровень API – 17. Пожалуйста, помогите мне.

Код для java:

public class Startingpoint extends Activity { int counter=0; Button add,subtract; TextView display; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.startingpoint); add = (Button) findViewById(R.id.bAdd); subtract= (Button) findViewById(R.id.bSubtract); display= (Button) findViewById(R.id.text); add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { counter++; display.setText("The total is " + counter); } }); subtract.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { counter--; display.setText("The total is " + counter); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.startingpoint, menu); return true; } } 

Формат макета в xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Your total is 0" android:textSize="35dp" android:layout_gravity="center" android:gravity="center"/> <Button android:layout_width="250dp" android:layout_height="wrap_content" android:text="Add One" android:layout_gravity="center" android:textSize="25dp" android:id="@+id/bAdd"/> <Button android:layout_width="250dp" android:layout_height="wrap_content" android:text="Subtract One" android:layout_gravity="center" android:textSize="25dp" android:id="@+id/bSubtract"/> </LinearLayout> 

Вот logcat:

 03-02 02:45:10.730: D/AndroidRuntime(780): Shutting down VM 03-02 02:45:10.730: W/dalvikvm(780): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 03-02 02:45:10.750: E/AndroidRuntime(780): FATAL EXCEPTION: main 03-02 02:45:10.750: E/AndroidRuntime(780): java.lang.RuntimeException: Unable to start activity ComponentInfo{tutorial.example.tutorial/tutorial.example.tutorial.Startingpoint}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.ActivityThread.access$600(ActivityThread.java:141) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.os.Handler.dispatchMessage(Handler.java:99) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.os.Looper.loop(Looper.java:137) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.ActivityThread.main(ActivityThread.java:5041) 03-02 02:45:10.750: E/AndroidRuntime(780): at java.lang.reflect.Method.invokeNative(Native Method) 03-02 02:45:10.750: E/AndroidRuntime(780): at java.lang.reflect.Method.invoke(Method.java:511) 03-02 02:45:10.750: E/AndroidRuntime(780): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 03-02 02:45:10.750: E/AndroidRuntime(780): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 03-02 02:45:10.750: E/AndroidRuntime(780): at dalvik.system.NativeStart.main(Native Method) 03-02 02:45:10.750: E/AndroidRuntime(780): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button 03-02 02:45:10.750: E/AndroidRuntime(780): at tutorial.example.tutorial.Startingpoint.onCreate(Startingpoint.java:22) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.Activity.performCreate(Activity.java:5104) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 03-02 02:45:10.750: E/AndroidRuntime(780): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 03-02 02:45:10.750: E/AndroidRuntime(780): ... 11 more 

 display= (Button) findViewById(R.id.text); 

должно быть

 display= (TextView) findViewById(R.id.text); 

Поскольку display должно ссылаться на экземпляр TextView , но вы явно бросаете его в Button , и это не совместимые типы.

Поскольку на этот раз вы получили ответ от AC, но в следующий раз в разработке приложений для Android важное предложение:

Всегда проверяйте logcat на наличие ошибок и см. Тег «Caused by:». Он определяет причину проблемы с достаточной детализацией. Также смотрите строку, которая вызвала эту ошибку. И попробуйте найти, что может быть неправильно с этой строкой кода.

Например: в вашем логарифме он показывает –

 Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button at tutorial.example.tutorial.Startingpoint.onCreate(Startingpoint.java:22) 

Таким образом, вы можете попробовать прочитать журнал, и вы поймете, что в вашем файле onCreate в line 22 который находится в методе onCreate ошибка onCreate android.widget.TextView cannot be cast to android.widget.Button onCreate android.widget.TextView cannot be cast to android.widget.Button . Таким образом, вы можете легко удалить свои ошибки без какой-либо помощи. Надеюсь, что это поможет не только вашей текущей проблеме, но и препятствует вашему будущему времени и усилиям.