Ver la Versión Completa : [ SOLUCIONADO ] la aplicación debe cerrarse
ralfrog
04/08/15, 17:55:17
Hola muy buenas,
Soy nuevo en esto de la programación en Android, acabo de empezar y ya tengo un problema que no soy capaz de solucionar. El problema es el siguiente, cualquier aplicación que desarrollo, a la hora de ejucutarla me compila bien, pero tanto en el emulador, como en un dispositivo real, instala la aplicación pero a la hora de abrirse me da el mensaje "Desafortunadamente, la aplicacion mi_aplicación debe cerrarse" y se cierra sin llegar a ver el resultado de mi aplicación . Deciros que utilizo un macbook y que tanto el eclipse como el sdk de android, los tengo en una carpeta llamada android en el raiz de mi directorio.
Espero podais ayudarme, gracias
kriogeN
04/08/15, 23:52:03
Está claro que tu código no está bien, el que compile bien no significa que la aplicación sea correcta, por ejemplo:
String a = null;
String b = null;
String c = a.concat(b);
Compila, pero falla porque se produce un NullPointerException
JamesRevelo
05/08/15, 04:33:15
Hola amigo. ¿tienes los resultados que salen en el logcat?
Por si no sabes, el logcat es la consola que aparece en la sección "Android" inferior, donde se muestran logs sobre las operaciones de la aplicación. Con este mensaje, ya se puede saber que va pasando.
ralfrog
05/08/15, 14:38:08
Os pongo el Logcat cuando se ejecuta la aplicación.
08-05 14:30:24.309: D/AndroidRuntime(2295): Shutting down VM
08-05 14:30:24.309: D/AndroidRuntime(2295): --------- beginning of crash
08-05 14:30:24.317: E/AndroidRuntime(2295): FATAL EXCEPTION: main
08-05 14:30:24.317: E/AndroidRuntime(2295): Process: com.rafanaranjo.actividadfinal_ft, PID: 2295
08-05 14:30:24.317: E/AndroidRuntime(2295): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rafanaranjo.actividadfinal_ft/com.rafanaranjo.actividadfinal_ft.MainActivity}: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_height attribute.
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2325)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2390)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.ActivityThread.access$800(ActivityThre ad.java:151)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1303)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.os.Handler.dispatchMessage(Handler.java:10 2)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.os.Looper.loop(Looper.java:135)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.ActivityThread.main(ActivityThread.jav a:5257)
08-05 14:30:24.317: E/AndroidRuntime(2295): at java.lang.reflect.Method.invoke(Native Method)
08-05 14:30:24.317: E/AndroidRuntime(2295): at java.lang.reflect.Method.invoke(Method.java:372)
08-05 14:30:24.317: E/AndroidRuntime(2295): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:903)
08-05 14:30:24.317: E/AndroidRuntime(2295): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:698)
08-05 14:30:24.317: E/AndroidRuntime(2295): Caused by: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_height attribute.
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.content.res.TypedArray.getLayoutDimension( TypedArray.java:606)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.view.ViewGroup$LayoutParams.setBaseAttribu tes(ViewGroup.java:6473)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:6641)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:741)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.widget.FrameLayout.generateLayoutParams(Fr ameLayout.java:685)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.widget.FrameLayout.generateLayoutParams(Fr ameLayout.java:62)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.view.LayoutInflater.inflate(LayoutInflater .java:492)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.view.LayoutInflater.inflate(LayoutInflater .java:414)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.view.LayoutInflater.inflate(LayoutInflater .java:365)
08-05 14:30:24.317: E/AndroidRuntime(2295): at com.android.internal.policy.impl.PhoneWindow.setCo ntentView(PhoneWindow.java:378)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.Activity.setContentView(Activity.java: 2145)
08-05 14:30:24.317: E/AndroidRuntime(2295): at com.rafanaranjo.actividadfinal_ft.MainActivity.onC reate(MainActivity.java:18)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.Activity.performCreate(Activity.java:5 990)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1106)
08-05 14:30:24.317: E/AndroidRuntime(2295): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2278)
08-05 14:30:24.317: E/AndroidRuntime(2295): ... 10 more
08-05 14:30:31.346: I/Process(2295): Sending signal. PID: 2295 SIG: 9
Saludos y gracias
LEAJIM_454
05/08/15, 16:27:08
java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_height attribute.
Ese es tu problema, te dice que debes darle una longitud de alto a la vista o al layout que estás usando ya sea por html o por codigo java, Saludos.
ralfrog
06/08/15, 13:52:59
He corregido el problema del layout_height , pero me sigue dando el mismo error. La aplicación es muy sencilla, consiste en mostrar una lista con una serie de equipos. Para ello he creado un archivo de clase, mi actividad "MainActivity" y mi archivo de layout "activity_main" . Os muestro el contenido de este último.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Como he dicho es muy sencillo , pero no se porque no va.
Saludos y gracias
Dexafree
07/08/15, 11:00:05
El logcat de error que te aparece después de añadir el atributo al layout es el mismo que antes?
ralfrog
10/08/15, 09:30:50
En primer lugar, gracias a todos por contestar. Ahora creo que da otro error diferente pero no estoy seguro, ya que no entiendo muy bien los log. Os dejo el log de ahora:
08-10 07:23:02.053: E/Trace(1755): error opening trace file: No such file or directory (2)
08-10 07:23:02.973: D/AndroidRuntime(1755): Shutting down VM
08-10 07:23:02.983: W/dalvikvm(1755): threadid=1: thread exiting with uncaught exception (group=0xb2c77908)
08-10 07:23:03.013: E/AndroidRuntime(1755): FATAL EXCEPTION: main
08-10 07:23:03.013: E/AndroidRuntime(1755): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rafanaranjo.actividadfinal_ft/com.rafanaranjo.actividadfinal_ft.MainActivity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ListView
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2180)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2230)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.ActivityThread.access$600(ActivityThre ad.java:141)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1234)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.os.Handler.dispatchMessage(Handler.java:99 )
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.os.Looper.loop(Looper.java:137)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.ActivityThread.main(ActivityThread.jav a:5041)
08-10 07:23:03.013: E/AndroidRuntime(1755): at java.lang.reflect.Method.invokeNative(Native Method)
08-10 07:23:03.013: E/AndroidRuntime(1755): at java.lang.reflect.Method.invoke(Method.java:511)
08-10 07:23:03.013: E/AndroidRuntime(1755): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:793)
08-10 07:23:03.013: E/AndroidRuntime(1755): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:560)
08-10 07:23:03.013: E/AndroidRuntime(1755): at dalvik.system.NativeStart.main(Native Method)
08-10 07:23:03.013: E/AndroidRuntime(1755): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ListView
08-10 07:23:03.013: E/AndroidRuntime(1755): at com.rafanaranjo.actividadfinal_ft.MainActivity.onC reate(MainActivity.java:20)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.Activity.performCreate(Activity.java:5 104)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1080)
08-10 07:23:03.013: E/AndroidRuntime(1755): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2144)
08-10 07:23:03.013: E/AndroidRuntime(1755): ... 11 more
Saludos y gracias de antemano
mocelet
10/08/15, 09:55:08
08-10 07:23:03.013: E/AndroidRuntime(1755): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rafanaranjo.actividadfinal_ft/com.rafanaranjo.actividadfinal_ft.MainActivity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ListView
[...]
08-10 07:23:03.013: E/AndroidRuntime(1755): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ListView
08-10 07:23:03.013: E/AndroidRuntime(1755): at com.rafanaranjo.actividadfinal_ft.MainActivity.onC reate(MainActivity.java:20)
Lo bueno de las excepciones de Android es que son bastante autoexplicativas (no puedo decir lo mismo de iOS xD)
En la línea 20 de MainActivity.java estás haciendo un cast (conversión) de un TextView a tipo ListView, cuando no tienen nada que ver uno con el otro. De hecho... en el layout que pusiste el otro día es normal que hasta tú mismo te equivoques:
<TextView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
¿Qué querías poner? Un TextView o un ListView. Siendo un TextView no puedes forzar la conversión a ListView porque dará excepción (y llamarlo listView es ganas de equivocarse). Si quieres un TextView, mejor llámalo textView1 para no liarte y haz la conversión a (TextView) en vez de a (ListView). Si lo que querías era un ListView, cambia ese TextView del layout por ListView y listo.
Dexafree
10/08/15, 10:13:38
Correcto, ese tiene que ser el error :ok:
ralfrog
10/08/15, 13:33:22
Ahora funciona, efectivamente era lo que comentabas. He cambiado el TextView por ListView y se ha ejecutado correctamente.
Muchas gracias a todos
Dexafree
10/08/15, 22:26:50
Marcamos como solucionado :ok:
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.