Lamentablemente, la aplicación ha dejado de funcionar.

Soy nuevo en el desarrollo de aplicaciones para Android. Estaba haciendo esta aplicación tutorial. Es muy simple. Agrega uno y sustrae uno del contador. Cuando lo ejecuto en el emulador, dice "Desafortunadamente el tutorial ha dejado de funcionar." No hay errores en el código. El nivel de la API es 17. Por favor, ayúdame.

Código para 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; } } 

Código de diseño en 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> 

Aquí está el 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); 

debiera ser

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

Dado que se supone que la display hace referencia a una instancia de TextView , pero explícitamente se está emitiendo en un Button , y estos no son tipos compatibles.

Como obtuvo la respuesta de AC esta vez, pero para la próxima vez en el desarrollo de aplicaciones Android una sugerencia importante:

Siempre vea el logcat de error, y ver la etiqueta "Caused by:", Especifica cuál fue la causa del problema con suficiente detalle, También vea la línea no que causó ese error. Y trate de encontrar lo que puede estar mal con esa línea de código.

Por ejemplo: en su logcat está mostrando-

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

Así que puedes intentar leer el log, y entenderás que en tu archivo Startingpoint.java en la line 22 que se encuentra en el método onCreate el error es android.widget.TextView cannot be cast to android.widget.Button . Así que usted puede quitar fácilmente sus errores sin ayuda. Espero que no sólo ayuda a su problema actual, sino que evita su futuro tiempo y esfuerzos.

  • ¿Qué es "android.R.layout.simple_list_item_1"?
  • ¿Cómo manejar los contadores de cuenta regresiva múltiples en RecyclerView?
  • Cómo abordar problema de diseño cuando el usuario cambia tamaño de fuente en android?
  • Debe utilizar "sp" en lugar de "dp" para los tamaños de texto
  • Android GridLayout obtener fila / columna
  • Gridview con diseño (imageview + imagebutton) para cada valor
  • Diseño personalizado basado en el diseño existente
  • ¿Cómo puedo dar cuatro clics de botón a la vista de la imagen?
  • Cambiar del diseño main.xml a otro diseño
  • Utilice el botón de conmutación estilo Android 4.0
  • ¿Por qué TextView.setTypeface () aumenta exageradamente mi altura TextView cuando uso la fuente Roboto-Italic.ttf?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.