La aplicación se bloquea al agregar un ImageView

Estoy tratando de añadir una imagen a mi aplicación, pero sigue fallando y no puedo concluir por qué.

Tengo varias imágenes en mi aplicación, pero agregar esta imagen parece ser problemática. Aquí está mi xml (EDIT: xml completo (Esto ha cambiado desde el original para fines de diseño)):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="match_parent" > <Button android:id="@+id/imageTextButton4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/imageTextButton3" android:layout_alignBottom="@+id/imageTextButton3" android:layout_alignLeft="@+id/imageTextButton2" android:layout_alignRight="@+id/imageTextButton2" android:drawableTop="@drawable/ic_launcher" android:text="Progress" /> <Button android:id="@+id/imageTextButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/imageTextButton1" android:layout_alignRight="@+id/imageTextButton1" android:layout_below="@+id/imageTextButton1" android:layout_marginTop="85dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal Plans" /> <Button android:id="@+id/imageTextButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="22dp" android:drawableTop="@drawable/ic_launcher" android:text="Your Meals" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" android:src="@drawable/logo" /> <Button android:id="@+id/imageTextButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="16dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal of the Day" /> </RelativeLayout> 

Y mi código java (condensado por brevedad):

 package com.example.c3347115app; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.content.Intent; public class MainActivity extends Activity { ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image = (ImageView) findViewById(R.id.imageView1); 

Logcat:

 05-10 01:55:30.718: W/dalvikvm(13140): threadid=1: thread exiting with uncaught exception (group=0x40a99228) 05-10 01:55:30.728: E/AndroidRuntime(13140): FATAL EXCEPTION: main 05-10 01:55:30.728: E/AndroidRuntime(13140): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.c3347115app/com.example.c3347115app.MainActivity}: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageView 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2205) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.access$600(ActivityThread.java:139) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.os.Handler.dispatchMessage(Handler.java:99) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.os.Looper.loop(Looper.java:156) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.main(ActivityThread.java:4987) 05-10 01:55:30.728: E/AndroidRuntime(13140): at java.lang.reflect.Method.invokeNative(Native Method) 05-10 01:55:30.728: E/AndroidRuntime(13140): at java.lang.reflect.Method.invoke(Method.java:511) 05-10 01:55:30.728: E/AndroidRuntime(13140): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-10 01:55:30.728: E/AndroidRuntime(13140): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-10 01:55:30.728: E/AndroidRuntime(13140): at dalvik.system.NativeStart.main(Native Method) 05-10 01:55:30.728: E/AndroidRuntime(13140): Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageView 05-10 01:55:30.728: E/AndroidRuntime(13140): at com.example.c3347115app.MainActivity.onCreate(MainActivity.java:22) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.Activity.performCreate(Activity.java:4538) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161) 

¿Puede alguien averiguar cuál es el problema? Gracias por adelantado.

Cuando crating ids en el archivo xml (usando @ + id /) Lo hace sólo en la primera aparición y más tarde Usted utiliza sólo @ id /

Así que su xml debe verse así

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="match_parent" > <Button android:id="@+id/imageTextButton4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/imageTextButton3" android:layout_alignBottom="@id/imageTextButton3" android:layout_alignLeft="@+id/imageTextButton2" android:layout_alignRight="@id/imageTextButton2" android:drawableTop="@drawable/ic_launcher" android:text="Progress" /> <Button android:id="@id/imageTextButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/imageTextButton1" android:layout_alignRight="@id/imageTextButton1" android:layout_below="@id/imageTextButton1" android:layout_marginTop="85dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal Plans" /> <Button android:id="@id/imageTextButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="22dp" android:drawableTop="@drawable/ic_launcher" android:text="Your Meals" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" android:src="@drawable/logo" /> <Button android:id="@id/imageTextButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="16dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal of the Day" /> </RelativeLayout> 

Estas dos líneas me parecen problemáticas:

 android:layout_above="@+id/imageTextButton1" android:layout_alignRight="@+id/imageTextButton2" 

¿El formulario "@ + id /" no genera un nuevo valor de id? Tal vez usted quiso decir "@ id /"

Causado por: java.lang.ClassCastException: android.widget.Button no se puede convertir en android.widget.ImageView

Usted parece tener un Button en su diseño con el mismo ID que su ImageView

Acabo de descubrir lo que solía ir mal cuando he añadido una imagen. El problema es, en mi caso, que ScrollView no puede tener más de un hijo directo. Así que cuando he añadido una imagen al lado del niño existente, la compilación no muestra errores, pero la aplicación de tiempo de ejecución se bloquea en create. La solución fue añadir un diseño dentro de la vista de desplazamiento como un único niño directo, dentro del cual irán mis diseños y vistas de contenido útil de scrollview.

  • Seleccione una parte de la imagen en ImageView y obtenga los puntos finales del rectángulo seleccionado
  • Cómo configurar BackgroundColor en ImageView en Android?
  • Android ImageView no está mostrando la imagen?
  • Ocultar y eliminar la imagen en la vista de imagen de Android
  • Crear diseño de las imágenes sin asignarlas layoutparams estáticos en android
  • Cómo hacer una imagen en forma circular?
  • Cómo almacenar y recuperar el mapa de bits en sharedPreferences en Android?
  • Android - Dos imágenes vistas lado a lado
  • Sólo el subproceso original que creó una jerarquía de vistas puede tocar sus vistas
  • Ampliación de ImageView TOP_CROP
  • Cómo obtener la imagen de sdcard en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.