The application has stopped unexpectedly

  • Antworten:14
Tom M.
  • Forum-Beiträge: 6

06.06.2011, 00:14:58 via Website

Hallo,

ich arbeite mich gerade anhand einiger Bücher und Videotutorials in die Androidprogrammierung ein und erhalte folgende Fehlermeldung bei einer App:

1Sorry! The application Dashboard (process de.test.training.dashboard)
2has stopped unexpectedly. Please try again.

LogCat gibt zum Zeipunkt des Fehlers folgendes aus:


106-05 21:58:31.603: INFO/ActivityManager(61): Displayed de.test.training.dashboard/.startseite: +5s29ms (total +3m5s582ms)
206-05 21:58:36.763: DEBUG/dalvikvm(119): GC_EXPLICIT freed 14K, 51% free 2935K/5959K, external 5887K/7299K, paused 52ms
306-05 21:58:41.443: INFO/ActivityManager(61): Starting: Intent {cmp=de.test.training.dashboard/.Unteractivity } from pid 376
406-05 21:58:51.508: WARN/ActivityManager(61): Launch timeout has expired, giving up wake lock!
506-05 21:58:51.583: WARN/ActivityManager(61): Activity idle timeout for HistoryRecord{40797ef0 de.test.training.dashboard/.Unteractivity}

Kann mir jemand sagen wo der Fehler liegt und was ich ändern muß?

Antworten
L3322
  • Forum-Beiträge: 467

06.06.2011, 00:25:11 via App

Jemand mit Kristallkugel könnte dir jetzt helfen, ich kann ohne Code allerdings nix sagen :)

"Hard work beats talent, when talent fails to work hard"

Antworten
Tom M.
  • Forum-Beiträge: 6

06.06.2011, 21:50:49 via Website

Code der Hauptklasse:

1import android.app.Activity;
2
3public class startseite extends Activity {
4 /** Called when the activity is first created. */
5 @Override
6 public void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.main);
9 }
10
11 public void wechsleActivity (final View view)
12 {
13 startActivity(new Intent(this, Unteractivity.class));
14 }
15}

Code der zweiten Activity:

1import android.app.Activity;
2import android.os.Bundle;
3
4public class Unteractivity extends Activity {
5
6 @Override
7 protected void onCreate(Bundle savedInstanceState) {
8 super.onCreate(savedInstanceState);
9 setContentView(R.layout.unteractivity);
10 }
11
12}

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:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 android:padding="10dp">
7<Button
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:id="@+id/sf_unteractivity"
11 android:text="@string/sf_unteractivity"
12 android:onClick="wechsleActivity"
13 />
14</LinearLayout>

unteractivity.xml

1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 android:padding="10dip">
7
8<Textview
9 android:layout_width="wrap_content"
10 android:layout_height="wrap_content"
11 android:text="@string/tx_unteractivity"
12 />
13</LinearLayout>

Manifest.xml
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="net.rixen.training.dashboard"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <uses-sdk android:minSdkVersion="7" />
7
8 <application android:icon="@drawable/icon" android:label="@string/app_name"
9 android:debuggable="true">
10 <activity android:name=".startseite"
11 android:label="@string/app_name">
12 <intent-filter>
13 <action android:name="android.intent.action.MAIN" />
14 <category android:name="android.intent.category.LAUNCHER" />
15 </intent-filter>
16 </activity>
17 <activity android:name="Unteractivity"></activity>
18
19 </application>
20</manifest>

Ich hoffe das reicht als Code - viel mehr gibt das Projekt noch nicht her - eben ein absolutes Anfängerprojekt aus dem Videokurs "Android 2".

Viele Grüße und vorab schon mal vielen Dank
Tom M.

Antworten
Ludwig H.
  • Forum-Beiträge: 3.256

06.06.2011, 22:31:30 via App

Kann sein, dass ich mich täusche, aber in der Main activity rufst du doch garnicht auf?!

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

06.06.2011, 23:10:54 via App

Hm,
versuch mal einen Punkt vor der anderen Activity im Manifest..
Also ".Unteractivity"
Lg Ansgar

— geändert am 06.06.2011, 23:13:17

Antworten
Tom M.
  • Forum-Beiträge: 6

06.06.2011, 23:43:43 via Website

Hallo Ansgar,

ich habe nun den Code im Manifest wie folgt geändert:
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="net.rixen.training.dashboard"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <uses-sdk android:minSdkVersion="7" />
7
8 <application android:icon="@drawable/icon" android:label="@string/app_name"
9 android:debuggable="true">
10 <activity android:name=".startseite"
11 android:label="@string/app_name">
12 <intent-filter>
13 <action android:name="android.intent.action.MAIN" />
14 <category android:name="android.intent.category.LAUNCHER" />
15 </intent-filter>
16 </activity>
17 <activity android:name=".Unteractivity"></activity>
18
19 </application>
20</manifest>

... leider ohne Erfolg. :(

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

07.06.2011, 00:24:49 via App

Hm,
komisch. Sonst fällt mir nichts auf. Mal Projekt -> Clean gemacht? Hilft manchmal Wunder :)
Lg Ansgar

Antworten
Tom M.
  • Forum-Beiträge: 6

07.06.2011, 09:44:45 via Website

Ich habe Project -> Clean ausgeführt, leider ohne Erfolg. Die Fehlermeldung erscheint weiterhin. :-(

Kann das Problem in meiner Entwicklungsumgebung und weniger im Code begründet sein? Die Fehlermeldung tauch inzwischen auch bei einer anderen App auf, die ich als Beispiel eines anderen Buches erstellt habe. Dort tritt der Fehler sogar auf, wenn ich den fertigen Code von der Website des Autors (Android 2, dpunkt Verlag) laufen lasse. Davon ausgehend das sein Code ok ist, müßte der Fehler in der Entwicklungsumgebung zu suchen sein.

Antworten
Ludwig H.
  • Forum-Beiträge: 3.256

07.06.2011, 10:05:35 via App

Hm, das ist komisch... Hilft vielleicht eine Neuinstallation?!

Antworten
Tom M.
  • Forum-Beiträge: 6

08.06.2011, 01:41:01 via Website

Nach guten 2 Stunden Neuinstallation von Eclipse und Android SDK besteht das Problem leider immer noch. :(

Da bei der Installation des Android SDK der Kaspersky Virenscanner Alarm geschlagen hatte, habe ich ihn vor Ausführung des Programms auf dem Emulator deaktiviert - leider ohne eine Veränderung des Ergebnisses.

Woran kann das liegen?

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

08.06.2011, 07:19:28 via App

Hm,
poste doch mal mehr vom Stracktrace des Fehlers, also mit den ganzen "at ..." in rot.
Lg Ansgar

Antworten
L3322
  • Forum-Beiträge: 467

08.06.2011, 07:43:21 via App

Also an einem Force Close ist denk ich mal selten sie Entwicklungsumgebung schuld!

"Hard work beats talent, when talent fails to work hard"

Antworten
Tom M.
  • Forum-Beiträge: 6

08.06.2011, 22:55:43 via Website

Hallo zusammen,

ich habe hier einen längeren Auszug von LogCat zusammengestellt.

Zwei Dinge sind mir außerdem noch aufgefallen.

1. Beim Start des Debugging der Anwendung scant Kaspersky die "emulator.exe" - kann diese Verzögerung zu einem Timeout führen?
2. Bevor die Anwendung (Dashboard) gestartet wird, erscheint bereits eine kurze Fehlermeldung auf dem Emulator, die jedoch so schnell wieder verschwindet das ich sie nicht lesen kann. :(


106-08 20:43:06.233: DEBUG/AndroidRuntime(327): Shutting down VM
206-08 20:43:06.283: INFO/ActivityManager(61): Start proc xyz.test.training.dashboard for activity com.sqax.training.dashboard/.Startseite: pid=336 uid=10034 gids={}
306-08 20:43:06.293: DEBUG/dalvikvm(327): GC_CONCURRENT freed 101K, 69% free 319K/1024K, external 0K/0K, paused 2ms+1ms
406-08 20:43:06.293: DEBUG/jdwp(327): adbd disconnected
506-08 20:43:06.313: INFO/AndroidRuntime(327): NOTE: attach of thread 'Binder Thread #3' failed
606-08 20:43:06.763: DEBUG/dalvikvm(192): Debugger has detached; object registry had 1 entries
706-08 20:43:07.773: WARN/ActivityThread(336): Application com.sqax.training.dashboard is waiting for the debugger on port 8100...
806-08 20:43:07.923: INFO/System.out(336): Sending WAIT chunk
906-08 20:43:08.173: INFO/ARMAssembler(61): generated scanline__00000177:03515104_00001002_00000000 [ 87 ipp] (110 ins) at [0x445b36f0:0x445b38a8] in 932620 ns
1006-08 20:43:08.493: INFO/dalvikvm(336): Debugger is active
1106-08 20:43:08.533: INFO/System.out(336): Debugger has connected
1206-08 20:43:08.533: INFO/System.out(336): waiting for debugger to settle...
1306-08 20:43:08.734: INFO/System.out(336): waiting for debugger to settle...
1406-08 20:43:08.933: INFO/System.out(336): waiting for debugger to settle...
1506-08 20:43:08.983: VERBOSE/MediaScanner(230): pruneDeadThumbnailFiles... android.database.sqlite.SQLiteCursor@405b7fc0
1606-08 20:43:08.983: VERBOSE/MediaScanner(230): /pruneDeadThumbnailFiles... android.database.sqlite.SQLiteCursor@405b7fc0
1706-08 20:43:08.983: DEBUG/MediaScanner(230): prescan time: 4633ms
1806-08 20:43:08.983: DEBUG/MediaScanner(230): scan time: 2ms
1906-08 20:43:08.983: DEBUG/MediaScanner(230): postscan time: 22ms
2006-08 20:43:08.983: DEBUG/MediaScanner(230): total time: 4657ms
2106-08 20:43:08.983: DEBUG/MediaScannerService(230): done scanning volume external
2206-08 20:43:09.709: INFO/System.out(336): waiting for debugger to settle...
2306-08 20:43:09.913: INFO/System.out(336): waiting for debugger to settle...
2406-08 20:43:10.123: INFO/System.out(336): waiting for debugger to settle...
2506-08 20:43:10.323: INFO/System.out(336): debugger has settled (1312)
2606-08 20:43:11.913: INFO/ActivityManager(61): Displayed xyz.test.training.dashboard/.Startseite: +5s697ms
2706-08 20:43:16.623: DEBUG/AndroidRuntime(336): Shutting down VM
2806-08 20:43:16.623: WARN/dalvikvm(336): threadid=1: thread exiting with uncaught exception (group=0x40015560)
2906-08 20:43:16.713: ERROR/AndroidRuntime(336): FATAL EXCEPTION: main
3006-08 20:43:16.713: ERROR/AndroidRuntime(336): java.lang.IllegalStateException: Could not find a method wechsleActivity(View) in the activity class xyz.test.training.dashboard.Startseite for onClick handler on view class android.widget.Button with id 'sd_unteractivity'
3106-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.view.View$1.onClick(View.java:2131)
3206-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.view.View.performClick(View.java:2485)
3306-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.view.View$PerformClick.run(View.java:9080)
3406-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.os.Handler.handleCallback(Handler.java:587)
3506-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.os.Handler.dispatchMessage(Handler.java:92)
3606-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.os.Looper.loop(Looper.java:123)
3706-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.app.ActivityThread.main(ActivityThread.java:3647)
3806-08 20:43:16.713: ERROR/AndroidRuntime(336): at java.lang.reflect.Method.invokeNative(Native Method)
3906-08 20:43:16.713: ERROR/AndroidRuntime(336): at java.lang.reflect.Method.invoke(Method.java:507)
4006-08 20:43:16.713: ERROR/AndroidRuntime(336): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
4106-08 20:43:16.713: ERROR/AndroidRuntime(336): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
4206-08 20:43:16.713: ERROR/AndroidRuntime(336): at dalvik.system.NativeStart.main(Native Method)
4306-08 20:43:16.713: ERROR/AndroidRuntime(336): Caused by: java.lang.NoSuchMethodException: wechsleActivity
4406-08 20:43:16.713: ERROR/AndroidRuntime(336): at java.lang.ClassCache.findMethodByName(ClassCache.java:247)
4506-08 20:43:16.713: ERROR/AndroidRuntime(336): at java.lang.Class.getMethod(Class.java:962)
4606-08 20:43:16.713: ERROR/AndroidRuntime(336): at android.view.View$1.onClick(View.java:2124)
4706-08 20:43:16.713: ERROR/AndroidRuntime(336): ... 11 more
4806-08 20:43:16.793: WARN/ActivityManager(61): Force finishing activity com.sqax.training.dashboard/.Startseite
4906-08 20:43:17.313: WARN/ActivityManager(61): Activity pause timeout for HistoryRecord{4063d6a8 com.sqax.training.dashboard/.Startseite}
5006-08 20:43:28.643: WARN/ActivityManager(61): Activity destroy timeout for HistoryRecord{4063d6a8 com.sqax.training.dashboard/.Startseite}

Hinweis zur Java Klasse:

Folgende Pakete werden importiert damit der Code compiliert werden kann:

1import android.app.Activity;
2import android.content.Intent;
3import android.os.Bundle;
4import android.view.View;

Vorab schon mal vielen Dank für die ganzen Meldungen hier! :)

— geändert am 08.06.2011, 22:56:14

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

08.06.2011, 23:55:52 via App

Hey,

Tom M.
106-08 20:43:16.713: ERROR/AndroidRuntime(336): Caused by: java.lang.NoSuchMethodException: wechsleActivity

sagt es doch eigentlich. Der Button soll bei klick die Methode "wechsleActivity" ausführen, doch er findet sie irgendwie nicht. Benutz selbst immer OnClickListener, deswegen kenn ich mich da nicht so aus.
Lg Ansgar

Antworten
Arne Jans
  • Forum-Beiträge: 11

26.07.2011, 01:42:30 via Website

wechsleActivity hat bei Dir ein final in der Defintion, entferne das final mal bitte, daran könnte es liegen, daß er diese Methode bei Dir nicht findet. Wenn das nicht geht, dann entferne das onClick-Attribut im XML das diese Methode referenziert und verwende stattdessen, so wie hier bereits vorgeschlagen, einen programmatisch angehängten OnClickListener.

Noch zwei mögliche Fehlerquellen:

Ich sehe keine package-Deklarationen in deinem Code, hast Du die Packages so deklariert, wie du das Package im AndroidManifest.xml deklariert hast?

Eine mögliche Quelle für Fehler/Verwirrung könnte auch noch sein, daß der Klassenname für startseite mit einem Großbuchstaben anfangen müsste (bin mir nicht sicher, aber es kann sein, daß die android-tools kleingeschriebene Identifier für Packagepfadnamen reservieren/interpretieren).

— geändert am 26.07.2011, 01:44:37

Antworten