Force Close bei Eclipse

  • 8 Antworten
  • Letztes Antwortdatum
F

FuNIID3X

Neues Mitglied
0
Hallo liebe Community Ich arbeite seit einiger Zeit an einer kleinen App für Android und versuche mich gerade an einer App mit einem Tabhoster (3 Tabs)
Beim Testen der App auf dem Emulator von Eclipse (AVD Manager) wird die App gleich nach dem Start wieder geschlossen: (Unfortunately, App has stopped). Was könnten mögliche Ursachen für das beenden der App sein? Vielen Dank schonmal für eure Hilfe






Hier die Quelltexte



AndroidManifest.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.FuNIID3X.plta"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="15" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="de.FuNIID3X.plta.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity_Lektionen" />
        <activity android:name=".Activity_Vokabeln" />
        <activity android:name=".Activity_Formen" />
    </application>

</manifest>


activity_main.xml
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg"
    tools:context=".MainActivity" >
    
    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
            </TabWidget>

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <LinearLayout
                    android:id="@+id/Lektionen"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/Vokabeln"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/Formen"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
                </LinearLayout>
            </FrameLayout>
        </LinearLayout>
    </TabHost>

</RelativeLayout>


MainActivity.java
Code:
package de.FuNIID3X.plta;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class MainActivity extends Activity {

    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        
        TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
         
        // Tab for Lektionen
        TabSpec lektionenspec = tabHost.newTabSpec("Lektionen");
        // setting Title and Icon for the Tab
        lektionenspec.setIndicator("Lektionen", getResources().getDrawable(R.drawable.bg));
        Intent lektionenIntent = new Intent(this, LektionenActivity.class);
        lektionenspec.setContent(lektionenIntent);
 
        // Tab for Vokabeln
        TabSpec vokabelnspec = tabHost.newTabSpec("Vokabeln");
        vokabelnspec.setIndicator("Vokabeln", getResources().getDrawable(R.drawable.bg));
        Intent vokabelnIntent = new Intent(this, VokabelnActivity.class);
        vokabelnspec.setContent(vokabelnIntent);
 
        // Tab for Formen
        TabSpec formenspec = tabHost.newTabSpec("Formen");
        formenspec.setIndicator("Formen", getResources().getDrawable(R.drawable.bg));
        Intent formenIntent = new Intent(this, FormenActivity.class);
        formenspec.setContent(formenIntent);
 
        // Adding all TabSpec to TabHost
        tabHost.addTab(lektionenspec); // Adding lektionen tab
        tabHost.addTab(vokabelnspec); // Adding vokabeln tab
        tabHost.addTab(formenspec); // Adding formen tab
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    
}
 
=> logcat hilft weiter
 
Hier der Logcat

Code:
02-03 15:02:24.035: D/AndroidRuntime(595): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
02-03 15:02:24.035: D/AndroidRuntime(595): CheckJNI is ON
02-03 15:02:25.605: D/AndroidRuntime(595): Calling main entry com.android.commands.pm.Pm
02-03 15:02:25.696: D/AndroidRuntime(595): Shutting down VM
02-03 15:02:25.725: I/AndroidRuntime(595): NOTE: attach of thread 'Binder Thread #3' failed
02-03 15:02:25.738: D/dalvikvm(595): GC_CONCURRENT freed 101K, 78% free 463K/2048K, paused 2ms+4ms
02-03 15:02:25.745: D/jdwp(595): Got wake-up signal, bailing out of select
02-03 15:02:25.765: D/dalvikvm(595): Debugger has detached; object registry had 1 entries
02-03 15:02:26.555: D/AndroidRuntime(608): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
02-03 15:02:26.555: D/AndroidRuntime(608): CheckJNI is ON
02-03 15:02:28.005: D/AndroidRuntime(608): Calling main entry com.android.commands.am.Am
02-03 15:02:28.056: I/ActivityManager(80): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=de.FuNIID3X.plta/.MainActivity} from pid 608
02-03 15:02:28.097: W/WindowManager(80): Failure taking screenshot for (180x300) to layer 21005
02-03 15:02:28.206: D/AndroidRuntime(608): Shutting down VM
02-03 15:02:28.268: D/dalvikvm(619): Not late-enabling CheckJNI (already on)
02-03 15:02:28.268: I/AndroidRuntime(608): NOTE: attach of thread 'Binder Thread #3' failed
02-03 15:02:28.328: I/ActivityManager(80): Start proc de.FuNIID3X.plta for activity de.FuNIID3X.plta/.MainActivity: pid=619 uid=10040 gids={}
02-03 15:02:28.336: D/dalvikvm(608): GC_CONCURRENT freed 102K, 77% free 485K/2048K, paused 6ms+44ms
02-03 15:02:28.366: D/jdwp(608): Got wake-up signal, bailing out of select
02-03 15:02:28.366: D/dalvikvm(608): Debugger has detached; object registry had 1 entries
02-03 15:02:28.936: W/NetworkManagementSocketTagger(80): setKernelCountSet(10040, 1) failed with errno -2
02-03 15:02:29.206: I/ARMAssembler(35): generated scanline__00000077:03515104_00009001_00000000 [131 ipp] (153 ins) at [0x416ea9c0:0x416eac24] in 1628768 ns
02-03 15:02:31.446: D/dalvikvm(619): GC_FOR_ALLOC freed 32K, 4% free 9065K/9347K, paused 119ms
02-03 15:02:31.456: I/dalvikvm-heap(619): Grow heap (frag case) to 9.506MB for 614416-byte allocation
02-03 15:02:31.576: I/Process(80): Sending signal. PID: 619 SIG: 3
02-03 15:02:31.586: I/dalvikvm(619): threadid=3: reacting to signal 3
02-03 15:02:31.736: I/dalvikvm(619): Wrote stack traces to '/data/anr/traces.txt'
02-03 15:02:31.755: D/dalvikvm(619): GC_CONCURRENT freed <1K, 4% free 9665K/9991K, paused 8ms+10ms
02-03 15:02:32.036: I/Process(80): Sending signal. PID: 619 SIG: 3
02-03 15:02:32.036: I/dalvikvm(619): threadid=3: reacting to signal 3
02-03 15:02:32.096: I/dalvikvm(619): Wrote stack traces to '/data/anr/traces.txt'
02-03 15:02:32.296: D/AndroidRuntime(619): Shutting down VM
02-03 15:02:32.306: W/dalvikvm(619): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
02-03 15:02:32.356: E/AndroidRuntime(619): FATAL EXCEPTION: main
02-03 15:02:32.356: E/AndroidRuntime(619): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.FuNIID3X.plta/de.FuNIID3X.plta.MainActivity}: java.lang.NullPointerException
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.os.Looper.loop(Looper.java:137)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.ActivityThread.main(ActivityThread.java:4424)
02-03 15:02:32.356: E/AndroidRuntime(619):     at java.lang.reflect.Method.invokeNative(Native Method)
02-03 15:02:32.356: E/AndroidRuntime(619):     at java.lang.reflect.Method.invoke(Method.java:511)
02-03 15:02:32.356: E/AndroidRuntime(619):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-03 15:02:32.356: E/AndroidRuntime(619):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-03 15:02:32.356: E/AndroidRuntime(619):     at dalvik.system.NativeStart.main(Native Method)
02-03 15:02:32.356: E/AndroidRuntime(619): Caused by: java.lang.NullPointerException
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.widget.TabHost.addTab(TabHost.java:232)
02-03 15:02:32.356: E/AndroidRuntime(619):     at de.FuNIID3X.plta.MainActivity.onCreate(MainActivity.java:44)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.Activity.performCreate(Activity.java:4465)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-03 15:02:32.356: E/AndroidRuntime(619):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
02-03 15:02:32.356: E/AndroidRuntime(619):     ... 11 more
02-03 15:02:32.436: W/ActivityManager(80):   Force finishing activity de.FuNIID3X.plta/.MainActivity
02-03 15:02:32.465: W/WindowManager(80): Failure taking screenshot for (180x300) to layer 21010
02-03 15:02:32.635: I/Process(80): Sending signal. PID: 619 SIG: 3
02-03 15:02:32.635: I/dalvikvm(619): threadid=3: reacting to signal 3
02-03 15:02:32.655: I/dalvikvm(619): Wrote stack traces to '/data/anr/traces.txt'
02-03 15:02:32.985: W/ActivityManager(80): Activity pause timeout for ActivityRecord{41304db8 de.FuNIID3X.plta/.MainActivity}
02-03 15:02:33.255: I/Process(80): Sending signal. PID: 619 SIG: 3
02-03 15:02:33.255: I/dalvikvm(619): threadid=3: reacting to signal 3
02-03 15:02:35.536: I/dalvikvm(619): Wrote stack traces to '/data/anr/traces.txt'
02-03 15:02:36.355: W/NetworkManagementSocketTagger(80): setKernelCountSet(10040, 0) failed with errno -2
 
Könntet ihr mir evtl. sagen was ich falsch gemacht hab und wie ich den Fehler beheben kann? Bin mit den Logcats noch nicht so ganz vertraut :confused:
 
In Zeile 44 ist was falsch.

Möchte aber jetzt nicht Zeilen zählen :D
 
Bin schonmal soweit, dass ich nun weiß das bei
Code:
43        // Adding all TabSpec to TabHost
44        tabHost.addTab(lektionenspec); // Adding lektionen tab
45        tabHost.addTab(vokabelnspec); // Adding vokabeln tab
46        tabHost.addTab(formenspec); // Adding formen tab

Eine NullPointerException ist, müsste jetzt nur noch wissen wie ich die beheben kann :/
 
dann wird wahrscheinlich das falsch sein

TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);

weil dein layout keinen tabhost mit der id android.R.id.tabhost hat - dafür müsstest von tabactivity ableiten.

benenne den tabhost mal in @+id/tabhost um und mach findviewbyid(R.id.tabhost)

dann müsste es gehen
 
Ok danke dafür, hatte ich versucht aber leider immernoch ohne Erfolg :sad:
 
Ok danke an alle :)

Hab meinen Fehler gefunden.
Hätte bei
Code:
public class MainActivity extends Activity {
->
Code:
public class MainActivity extends TabActivity {
machen und bei den
Code:
 lektionenspec.setIndicator("Lektionen", getResources().getDrawable(R.drawable.bg));
Code:
 vokabelnspec.setIndicator("Lektionen", getResources().getDrawable(R.drawable.bg));
Code:
 formenspec.setIndicator("Lektionen", getResources().getDrawable(R.drawable.bg));
immer

Code:
 lektionenspec.setIndicator("Lektionen", getResources().getDrawable(R.drawable.icon_tab));
...
machen müssen :)
 
Zurück
Oben Unten