1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

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

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Bobert, 26.11.2010.

  1. Bobert, 26.11.2010 #1
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    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 http://www.android-hilfe.de/android-app-entwicklung/40709-source-not-found.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
     
  2. Lilithian, 26.11.2010 #2
    Lilithian

    Lilithian Android-Hilfe.de Mitglied

    Beiträge:
    69
    Erhaltene Danke:
    23
    Registriert seit:
    26.10.2010
    Schau mal nach was in der LogCat drinsteht, die Fehlermeldungen sind hilfreicher.

    In Eclipse zu finden unter:
    Window -> Show View -> Other -> Android -> LogCat
     
  3. Bobert, 26.11.2010 #3
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    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
     
  4. Lilithian, 26.11.2010 #4
    Lilithian

    Lilithian Android-Hilfe.de Mitglied

    Beiträge:
    69
    Erhaltene Danke:
    23
    Registriert seit:
    26.10.2010
    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.


    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.
     
    Bobert bedankt sich.
  5. Bobert, 26.11.2010 #5
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    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!
     
  6. rufux, 26.11.2010 #6
    rufux

    rufux Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    5
    Registriert seit:
    11.11.2010
    schreib den Pfad der activity mal aus...
    z.B.

    Code:
    [B] <activity android:name="de.irgendwas.layouttabs.AlbumActivity" />
    [/B]
    
     
  7. Bobert, 26.11.2010 #7
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    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
     
  8. ko5tik, 29.11.2010 #8
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    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: 29.11.2010
  9. Lilithian, 29.11.2010 #9
    Lilithian

    Lilithian Android-Hilfe.de Mitglied

    Beiträge:
    69
    Erhaltene Danke:
    23
    Registriert seit:
    26.10.2010
    Sei mal Schüler oder Student, dann sind die 200 Euro zu teuer. Mir zumindest. ;)
     
  10. ko5tik, 29.11.2010 #10
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Community-Edition ist kostenlos ( android ist dabei ) - und Studenten zahlen EUR88
    ( etwa 4 Kasten Bier ;) )
     

Diese Seite empfehlen