App stürzt bei Aufruf direkt ab

  • Antworten:13
  • Bentwortet
Meresez
  • Forum-Beiträge: 31

28.03.2011, 21:56:20 via Website

Hallo zusammen

Ich versuche gerade ein wenig mich in die Programmierung von Apps für Android einzuarbeiten. Bisher hat auch alles schön geklappt, nur nun eben nicht mehr :D Wenn ich die App öffne(mit eclipse und Emulator Android 2.2(ohne Google API) stürzt sie immer wieder direkt ab("This application ..... has stopped unexpectedly. please try again.).

StaumeldungErfassen :
1package de.androidbuch.staumelder;
2
3import android.app.Activity;
4import android.os.Bundle;
5import android.widget.Spinner;
6import android.widget.ArrayAdapter;
7
8public class StaumeldungErfassen extends Activity {
9 /** Called when the activity is first created. */
10 @Override
11 public void onCreate(Bundle savedInstanceState) {
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.main);
14
15 Spinner s = (Spinner) findViewById(R.id.spinner);
16 ArrayAdapter adapter = ArrayAdapter.createFromResource(
17 this, R.array.planets, android.R.layout.simple_spinner_item);
18 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
19 s.setAdapter(adapter);
20 }
21}

main.xml:
1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:padding="10dip"
5 android:layout_width="fill_parent"
6 android:layout_height="wrap_content">
7
8 <TextView
9 android:layout_width="fill_parent"
10 android:layout_height="wrap_content"
11 android:layout_marginTop="10dip"
12 android:text="Please select a planet:"
13 />
14
15 <Spinner
16 android:id="@+id/spinner"
17 android:layout_width="fill_parent"
18 android:layout_height="wrap_content"
19 android:drawSelectorOnTop="true"
20 android:prompt="@string/planet_prompt"
21 />
22
23</LinearLayout>
arrays.xml:
1<?xml version="1.0" encoding="utf-8"?>
2<resources>
3
4 <string-array name="planets">
5 <item>Mercury</item>
6 <item>Venus</item>
7 <item>Earth</item>
8 <item>Mars</item>
9 <item>Jupiter</item>
10 <item>Saturn</item>
11 <item>Uranus</item>
12 <item>Neptune</item>
13 </string-array>
14
15</resources>

Bei "ArrayAdapter adapter = ArrayAdapter.createFromResource(...." erhalte ich von Eclipse folgende Warnung:
"ArrayAdapter is a raw type. References to generic type ArrayAdapter<T> should be parameterized".

Ich vermute stark dass das direkte abstürzen der App damit zusammenhängt, kann jedoch nicht sonderlich viel mit der Warnung anfangen.

— geändert am 28.03.2011, 21:57:12

Antworten
Helen Müller
  • Forum-Beiträge: 5

28.03.2011, 23:58:27 via Website

Hallo

Bin auch noch ganz neu beim Android Programmieren dabei.
Was mir immer mal wieder passiert, dass ich vergesse eine neue Activity im Manifest.xml zu definieren.

Könnte es bei dir vielleicht auch sowas sein?

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

29.03.2011, 02:31:22 via Website

Wie in 99.9% der Fälle ist die LogCat zu konsultieren bei Fehlern da sie dort protokolliert werden!

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Meresez
  • Forum-Beiträge: 31

29.03.2011, 07:46:55 via Website

Nun gut nur kann ich mit den Meldungen der LogCat nicht sonderlich viel anfangen, ich versuchs trotzdem mal, wenn jmnd den Fehler gefunden hat soll er sich bitte melden :)
103-29 05:44:45.878: ERROR/Zygote(32): setreuid() failed. errno: 2
203-29 05:44:59.299: ERROR/Zygote(32): setreuid() failed. errno: 17
303-29 05:45:02.879: ERROR/BatteryService(67): usbOnlinePath not found
403-29 05:45:02.879: ERROR/BatteryService(67): batteryVoltagePath not found
503-29 05:45:02.879: ERROR/BatteryService(67): batteryTemperaturePath not found
603-29 05:45:02.999: ERROR/SurfaceFlinger(67): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
703-29 05:45:12.599: ERROR/EventHub(67): could not get driver version for /dev/input/mouse0, Not a typewriter
803-29 05:45:12.599: ERROR/EventHub(67): could not get driver version for /dev/input/mice, Not a typewriter
903-29 05:45:12.988: ERROR/System(67): Failure starting core service
1003-29 05:45:12.988: ERROR/System(67): java.lang.SecurityException
1103-29 05:45:12.988: ERROR/System(67): at android.os.BinderProxy.transact(Native Method)
1203-29 05:45:12.988: ERROR/System(67): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
1303-29 05:45:12.988: ERROR/System(67): at android.os.ServiceManager.addService(ServiceManager.java:72)
1403-29 05:45:12.988: ERROR/System(67): at com.android.server.ServerThread.run(SystemServer.java:184)
1503-29 05:45:15.029: ERROR/SoundPool(67): error loading /system/media/audio/ui/Effect_Tick.ogg
1603-29 05:45:15.049: ERROR/SoundPool(67): error loading /system/media/audio/ui/KeypressStandard.ogg
1703-29 05:45:15.069: ERROR/SoundPool(67): error loading /system/media/audio/ui/KeypressSpacebar.ogg
1803-29 05:45:15.089: ERROR/SoundPool(67): error loading /system/media/audio/ui/KeypressDelete.ogg
1903-29 05:45:15.119: ERROR/SoundPool(67): error loading /system/media/audio/ui/KeypressReturn.ogg
2003-29 05:45:20.459: ERROR/ThrottleService(67): Could not open GPS configuration file /etc/gps.conf
2103-29 05:45:22.449: ERROR/logwrapper(149): executing /system/bin/tc failed: No such file or directory
2203-29 05:45:22.599: ERROR/logwrapper(150): executing /system/bin/tc failed: No such file or directory
2303-29 05:45:22.699: ERROR/logwrapper(151): executing /system/bin/tc failed: No such file or directory
2403-29 05:45:42.206: ERROR/HierarchicalStateMachine(67): TetherMaster - unhandledMessage: msg.what=3
2503-29 05:46:10.493: ERROR/AndroidRuntime(276): FATAL EXCEPTION: main
2603-29 05:46:10.493: ERROR/AndroidRuntime(276): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.androidbuch.staumelder/de.androidbuch.staumelder.StaumeldungErfassen}: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
2703-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
2803-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
2903-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
3003-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
3103-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.os.Handler.dispatchMessage(Handler.java:99)
3203-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.os.Looper.loop(Looper.java:123)
3303-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.ActivityThread.main(ActivityThread.java:4627)
3403-29 05:46:10.493: ERROR/AndroidRuntime(276): at java.lang.reflect.Method.invokeNative(Native Method)
3503-29 05:46:10.493: ERROR/AndroidRuntime(276): at java.lang.reflect.Method.invoke(Method.java:521)
3603-29 05:46:10.493: ERROR/AndroidRuntime(276): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
3703-29 05:46:10.493: ERROR/AndroidRuntime(276): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
3803-29 05:46:10.493: ERROR/AndroidRuntime(276): at dalvik.system.NativeStart.main(Native Method)
3903-29 05:46:10.493: ERROR/AndroidRuntime(276): Caused by: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
4003-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
4103-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3592)
4203-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3672)
4303-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:452)
4403-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:418)
4503-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:48)
4603-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.view.LayoutInflater.inflate(LayoutInflater.java:395)
4703-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
4803-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
4903-29 05:46:10.493: ERROR/AndroidRuntime(276): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
5003-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.Activity.setContentView(Activity.java:1647)
5103-29 05:46:10.493: ERROR/AndroidRuntime(276): at de.androidbuch.staumelder.StaumeldungErfassen.onCreate(StaumeldungErfassen.java:14)
5203-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
5303-29 05:46:10.493: ERROR/AndroidRuntime(276): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
5403-29 05:46:10.493: ERROR/AndroidRuntime(276): ... 11 more
5503-29 05:46:15.833: ERROR/AndroidRuntime(286): FATAL EXCEPTION: main
5603-29 05:46:15.833: ERROR/AndroidRuntime(286): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.androidbuch.staumelder/de.androidbuch.staumelder.StaumeldungErfassen}: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
5703-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
5803-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
5903-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
6003-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
6103-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.os.Handler.dispatchMessage(Handler.java:99)
6203-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.os.Looper.loop(Looper.java:123)
6303-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.ActivityThread.main(ActivityThread.java:4627)
6403-29 05:46:15.833: ERROR/AndroidRuntime(286): at java.lang.reflect.Method.invokeNative(Native Method)
6503-29 05:46:15.833: ERROR/AndroidRuntime(286): at java.lang.reflect.Method.invoke(Method.java:521)
6603-29 05:46:15.833: ERROR/AndroidRuntime(286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
6703-29 05:46:15.833: ERROR/AndroidRuntime(286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
6803-29 05:46:15.833: ERROR/AndroidRuntime(286): at dalvik.system.NativeStart.main(Native Method)
6903-29 05:46:15.833: ERROR/AndroidRuntime(286): Caused by: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
7003-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
7103-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3592)
7203-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3672)
7303-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:452)
7403-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:418)
7503-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:48)
7603-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.view.LayoutInflater.inflate(LayoutInflater.java:395)
7703-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
7803-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
7903-29 05:46:15.833: ERROR/AndroidRuntime(286): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
8003-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.Activity.setContentView(Activity.java:1647)
8103-29 05:46:15.833: ERROR/AndroidRuntime(286): at de.androidbuch.staumelder.StaumeldungErfassen.onCreate(StaumeldungErfassen.java:14)
8203-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
8303-29 05:46:15.833: ERROR/AndroidRuntime(286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
8403-29 05:46:15.833: ERROR/AndroidRuntime(286): ... 11 more

— geändert am 29.03.2011, 07:47:50

Antworten
Meresez
  • Forum-Beiträge: 31

29.03.2011, 07:52:30 via Website

Helen Müller
Hallo

Bin auch noch ganz neu beim Android Programmieren dabei.
Was mir immer mal wieder passiert, dass ich vergesse eine neue Activity im Manifest.xml zu definieren.

Könnte es bei dir vielleicht auch sowas sein?

Danke für den Hinweis. Ich hab jedoch nur eine Activity und diese ist auch im Manifest definier, daran kanns also nicht liegen :)

Antworten
Meresez
  • Forum-Beiträge: 31

29.03.2011, 08:44:05 via Website

Ist definiert ja:

1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:padding="10dip"
5 android:layout_width="fill_parent"
6 android:layout_height="wrap_content">
7
8</LinearLayout>
Wenn es in Zeile 2 sein muss wie kann ich das ganze umschreiben?(Rest des Quellcodes der XML findet man in meinem 1. Beitrag)

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

29.03.2011, 09:09:28 via Website

und das ist sicher die richtige datei?

swordiApps Blog - Website

Antworten
Meresez
  • Forum-Beiträge: 31

29.03.2011, 09:27:21 via Website

Welches soll den sonst das Binary XML File sein?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

29.03.2011, 09:39:30 via Website

wir können ja nicht hellsehen, ob du im richtigen xml file nachsiehst.

swordiApps Blog - Website

Antworten
Meresez
  • Forum-Beiträge: 31

29.03.2011, 09:41:09 via Website

steht ja oben bereits...(main.xml unter projekt/res/layout/)

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

29.03.2011, 09:46:56 via Website

Mach doch mal testweise Folgendes:

1.) ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource();. Hilft das mit der Warning?

2.) Schmeiss mal alles nach setContentView aus dem onCreate raus und guck mal was dann passiert.

3.) Wenn das klappte, bau den Teil wieder ein und lass mal nur das LinearLayout in der xml Datei und probier neu. Danach bau nach und nach die weiteren Views ein.

Gruß
Harald

Antworten
Meresez
  • Forum-Beiträge: 31

29.03.2011, 10:04:45 via Website

Admin Service Limited
Mach doch mal testweise Folgendes:

1.) ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource();. Hilft das mit der Warning?

2.) Schmeiss mal alles nach setContentView aus dem onCreate raus und guck mal was dann passiert.

3.) Wenn das klappte, bau den Teil wieder ein und lass mal nur das LinearLayout in der xml Datei und probier neu. Danach bau nach und nach die weiteren Views ein.

Gruß
Harald

1.) Tatsächlich hat geholfen, kannst du mir dies noch erklären? :)

2.) Immernoch das gleiche ergebniss
3.) Dann lässt sich die App erst gar nicht starten, da "Spinner s = (Spinner) findViewById(R.id.spinner);" in der xml mit: "<Spinner
android:id="@+id/spinner"...." definiert wird ;)

Aber es liegt definitiv an der XML, lösche ich nämlich da alles raus bis auf das LinearLayout lässt sich die App starten(sofern ich den Spinner natürlich aus dem Quellcode entferne). Nun müsste ich nur noch wissen wie ich das ganze korrigieren kann und die Welt ist wieder in Ordnung.

— geändert am 29.03.2011, 10:10:14

Antworten
Meresez
  • Forum-Beiträge: 31

29.03.2011, 11:21:56 via Website

Fehler behoben und die App funktioniert wieder richtig :D

Hab in der XML den Spinner leicht abgeändert:

1<Spinner
2 android:id="@+id/spinner"
3 android:layout_width="fill_parent"
4 android:layout_height="wrap_content"
5 android:layout_marginTop="20dip"
6 android:drawSelectorOnTop="true"
7 android:prompt="@string/planet_prompt"
8 />

Nun gehts tip top :)

Antworten