Sorry! The application Layout Tabs (prosess ...) has stopped unexpectedly.

Bobert

Bobert

Fortgeschrittenes Mitglied
15
Hallo,

ich arbeite mich gerade in Eclipse und insbesondere Androide SDK ein.

Jetzt arbeite ich mich durch das Beispiele Tab Layout | Android Developers leider bekomme ich es nicht zum laufen.

FehlerMeldung im Emulator ist: "Sorry! The application Layout Tabs (Prosess ...) has stopped unexpectedly. Please try again." dieses sagt mir eigentlich nichts. Also versuche ich zu Debugen "Source not found" sagt mir auch nichts. Welcher Source nicht gefunden wird, steht dort nicht. In den folgenden Beitrag wurde so was ähnliches auch behandelt https://www.android-hilfe.de/forum/android-app-entwicklung.9/source-not-found.40709.html hat mir auch nicht weiter geholfen.

Hat jemand eine Idee? In der letzten Zeile passiert der Fehler.

Code:
package de.irgendwas.layouttabs;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

public class LayoutTabs extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Resources res = getResources();
        TabHost tabHost = getTabHost();
        TabHost.TabSpec spec;
        Intent intent;
       
        intent = new Intent().setClass(this, ArtistsActivity.class);
       
        spec = tabHost.newTabSpec("artist").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent);
        tabHost.addTab(spec);
       
        .......
Grüße Bobert
 
Schau mal nach was in der LogCat drinsteht, die Fehlermeldungen sind hilfreicher.

In Eclipse zu finden unter:
Window -> Show View -> Other -> Android -> LogCat
 
Ja Danke, ok....

LogCat Text
Code:
11-26 12:58:47.773: ERROR/AndroidRuntime(276): FATAL EXCEPTION: main
11-26 12:58:47.773: ERROR/AndroidRuntime(276): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.irgendwas.layouttabs/de.irgendwas.layouttabs.LayoutTabs}: android.content.ActivityNotFoundException: Unable to find explicit activity class {de.irgendwas.layouttabs/de.irgendwas.layouttabs.ArtistsActivity}; have you declared this activity in your AndroidManifest.xml?
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.os.Looper.loop(Looper.java:123)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at java.lang.reflect.Method.invokeNative(Native Method)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at java.lang.reflect.Method.invoke(Method.java:521)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at dalvik.system.NativeStart.main(Native Method)
11-26 12:58:47.773: ERROR/AndroidRuntime(276): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {de.irgendwas.layouttabs/de.irgendwas.layouttabs.ArtistsActivity}; have you declared this activity in your AndroidManifest.xml?
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.ActivityThread.resolveActivityInfo(ActivityThread.java:2473)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:277)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.widget.TabHost.setCurrentTab(TabHost.java:323)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.widget.TabHost.addTab(TabHost.java:213)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at de.irgendwas.layouttabs.LayoutTabs.onCreate(LayoutTabs.java:24)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-26 12:58:47.773: ERROR/AndroidRuntime(276):     ... 11 more
Wenn ich das richtig verstehe, steht in der 2. Zeile, dass ich die Klasse ArtistsActivity nicht in dem AndroidManifest.xml deklariert habe?!

Zwei Fragen dazu:
1. Wie muss ich die Klasse in AndroidManifest.xml deklarieren?

2. Wie legt man eine Klasse in Eclipse/Android richtig an? (Ich mache das so: Rechtsklick auf das entsprechende Package-> new -> Class )


AndroidManifest.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="de.irgendwas.layouttabs"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:label="@string/app_name" android:name="LayoutTabs" android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
ArtistsActivity.class
Code:
package de.irgendwas.layouttabs;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class ArtistsActivity extends Activity {
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
            
        TextView textView = new TextView(this);
        textView.setText("This is in the ArtistTab");
        setContentView(textView);
    }
}
Gruß Bobert
 
1. Wie muss ich die Klasse in AndroidManifest.xml deklarieren?

Zwischen <application> und </application> stehen deine Activities. Die erste Activity steht ja standardmäßig schon drinnen. Weitere Activites fügst man mit folgendem Code hinzu:

Code:
<activity android:name=".KlassenName" />

Solange die alle im gleichen Package sind reicht es einen Punkt vor den Klassennamen zu schreiben, ansonsten müsstest du das Package noch davor schreiben.


2. Wie legt man eine Klasse in Eclipse/Android richtig an? (Ich mache das so: Rechtsklick auf das entsprechende Package-> new -> Class )

So kannst du die Klassen erstellen. Die meisten Klassen die du erstellst werden Activities sein, also wenn du eine neue Klasse erstellst, einfach "extends Activity" dahinter schreiben (Activity importieren) und dann die onCreate Methode und was du sonst so brauchst implementieren.
 
  • Danke
Reaktionen: Bobert
ja danke,

habe die Zeilen in der AndroidManifest.xml ergänzt, die Fehlermeldung in LogCat sind weg.

Code:
[B]  <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:label="@string/app_name" android:name="LayoutTabs" android:theme="@android:style/Theme.NoTitleBar">
        <activity android:name=".ArtistsActivity" />
        <activity android:name=".AlbumActivity" />
        <activity android:name=".SongsActivity" />        
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>[/B]
Der ursprüngliche Fehler ist damit aber noch nicht beseitigt! Immer noch "Source not found." bei :

Code:
        spec = tabHost.newTabSpec("artist").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent);
        tabHost.addTab(spec);
Hast Du vieleicht noch eine Idee woran es liegen könnte, ich bin dort momentan überfragt.

Grüße Bobert


Ach ja Nachtrag: So mach ich das auch mit Klassen erstellen wollte nur sichergehen das ich da nicht was übersehen habe! Danke!
 
schreib den Pfad der activity mal aus...
z.B.

Code:
[B] <activity android:name="de.irgendwas.layouttabs.AlbumActivity" />
[/B]
 
Ahh Danke Dir "Lilithian", habs!

Habe die activity an der Falschen stelle hingeschrieben! So geht es dan:

Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="de.irgendwas.layouttabs"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:label="@string/app_name" android:name="LayoutTabs" android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ArtistsActivity" />
        <activity android:name=".AlbumActivity" />
        <activity android:name=".SongsActivity" />      
    </application>
</manifest>
Grüße Bobert
 
Mal am Rande bemerkt - warum tut ihr euch den Eclipse an? Ja, klar ist es konstenlos -
aber dennoch ist es eine beschissene veralterte mit unnutzen Zeugs überladene fehhlerhafte Entwicklungsumgebung.
IntelliJ IDEA community Edition kostet nix, ist schneller, braucht weniges Speicher und hat einen ordentlichen Android-Plugin ( und Privatversion mit EUR 200 ist auch nicht zu teuer)

Dieses Fehler wäre mit IDEA nicht passiert.
 
Zuletzt bearbeitet:
ko5tik schrieb:
Mal am Rande bemerkt - warum tut ihr euch den Eclipse an? Ja, klar ist es konstenlos -
aber dennoch ist es eine beschissene veralterte mit unnutzen Zeugs überladene fehhlerhafte Entwicklungsumgebung.
IntelliJ IDEA community Edition kostet nix, ist schneller, braucht weniges Speicher und hat einen ordentlichen Android-Plugin ( und Privatversion mit EUR 200 ist auch nicht zu teuer)

Dieses Fehler wäre mit IDEA nicht passiert.

Sei mal Schüler oder Student, dann sind die 200 Euro zu teuer. Mir zumindest. ;)
 
Community-Edition ist kostenlos ( android ist dabei ) - und Studenten zahlen EUR88
( etwa 4 Kasten Bier ;) )
 

Ähnliche Themen

L
Antworten
4
Aufrufe
1.329
lonnie9020
L
A
Antworten
1
Aufrufe
878
koje71
koje71
R
Antworten
6
Aufrufe
994
swa00
swa00
Zurück
Oben Unten