Beim API Downgraden Fehler :( Brauche Hilfe bei LogCat Analyse

  • 8 Antworten
  • Letztes Antwortdatum
keinbrain

keinbrain

Erfahrenes Mitglied
21
Hey, ich wollte meine App von 2.3.3 auf 2.1 downgraden , indem ich Dinge, die erst ab Api 8 bzw. 9 verfügbar sind, rauswerfe (Nichts wichtiges) .

Der downgrade auf Api 8 hat super geklappt, aber wenn ich die App mit einem Api 7 Emulator starte, stürzt sie immer ab.

Ich verstehe die LogCat-Ausgabe nicht wirklich, ich kam nur soweit , dass irgendwo eine NullPointerException entsteht.

Ich hoffe jemand kann mir dabei helfen , die LogCat ausgabe zu analysieren und den Fehler zu finden . Danke im Vorraus :)

Code:
10-17 19:46:41.416: E/AndroidRuntime(283): Uncaught handler: thread main exiting due to uncaught exception
10-17 19:46:41.429: E/AndroidRuntime(283): java.lang.RuntimeException: Unable to start activity ComponentInfo{droidenschmiede.sysdroid/droidenschmiede.sysdroid.SYSDroidActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{droidenschmiede.sysdroid/droidenschmiede.sysdroid.system}: java.lang.NullPointerException
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.os.Looper.loop(Looper.java:123)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.main(ActivityThread.java:4363)
10-17 19:46:41.429: E/AndroidRuntime(283):     at java.lang.reflect.Method.invokeNative(Native Method)
10-17 19:46:41.429: E/AndroidRuntime(283):     at java.lang.reflect.Method.invoke(Method.java:521)
10-17 19:46:41.429: E/AndroidRuntime(283):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-17 19:46:41.429: E/AndroidRuntime(283):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-17 19:46:41.429: E/AndroidRuntime(283):     at dalvik.system.NativeStart.main(Native Method)
10-17 19:46:41.429: E/AndroidRuntime(283): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{droidenschmiede.sysdroid/droidenschmiede.sysdroid.system}: java.lang.NullPointerException
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.startActivityNow(ActivityThread.java:2335)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:648)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.widget.TabHost.setCurrentTab(TabHost.java:320)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.widget.TabHost.addTab(TabHost.java:213)
10-17 19:46:41.429: E/AndroidRuntime(283):     at droidenschmiede.sysdroid.SYSDroidActivity.onCreate(SYSDroidActivity.java:41)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-17 19:46:41.429: E/AndroidRuntime(283):     ... 11 more
10-17 19:46:41.429: E/AndroidRuntime(283): Caused by: java.lang.NullPointerException
10-17 19:46:41.429: E/AndroidRuntime(283):     at droidenschmiede.sysdroid.system.onCreate(system.java:141)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-17 19:46:41.429: E/AndroidRuntime(283):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-17 19:46:41.429: E/AndroidRuntime(283):     ... 20 more
 
java.lang.NullPointerException: "at droidenschmiede.sysdroid.SYSDroidActivity.onCreate(SYSDroidActivity.java:41)"

Was steht denn in deiner onCreate in Zeile 41?

Kannst du mal die komplette onCreate posten?
 
Code:
public class SYSDroidActivity 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(); // Resource object to get Drawables
        
        //Strings aus strings.xml in Java laden

        String tab1 = res.getString(R.string.tab1);
        String tab2 = res.getString(R.string.tab2);
        String tab3 = res.getString(R.string.tab3);
        String tab4 = res.getString(R.string.tab4);
        String tab5 = res.getString(R.string.tab5);

        final TabHost tabHost = getTabHost();  // The activity TabHost
        TabHost.TabSpec spec;  // Resusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab

        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent().setClass(this, system.class);

        // Initialize a TabSpec for each tab and add it to the TabHost
        
        spec = tabHost.newTabSpec("system").setIndicator(tab1,
                          res.getDrawable(R.drawable.ic_tab_system))
                      .setContent(intent);
        tabHost.addTab(spec);

        // Do the same for the other tabs
        intent = new Intent().setClass(this, erweitert.class);
        spec = tabHost.newTabSpec("erweitert").setIndicator(tab2,
                          res.getDrawable(R.drawable.ic_tab_erweitert))
                      .setContent(intent);
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, speicher.class);
        spec = tabHost.newTabSpec("speicher").setIndicator(tab3,
                          res.getDrawable(R.drawable.ic_tab_speicher))
                      .setContent(intent);
        tabHost.addTab(spec);
        
        intent = new Intent().setClass(this, akku.class);
        spec = tabHost.newTabSpec("akku").setIndicator(tab4,
                          res.getDrawable(R.drawable.ic_tab_akku))
                      .setContent(intent);
        tabHost.addTab(spec);
        
        intent = new Intent().setClass(this, impressum.class);
        spec = tabHost.newTabSpec("impressum").setIndicator(tab5,
                          res.getDrawable(R.drawable.ic_tab_impressum))
                      .setContent(intent);
        tabHost.addTab(spec);
 
        tabHost.setCurrentTab(0); 
        
    }
    
}
Das ist die onCreate der SYSDroidActivity, ich hab den Fehler eher in system.java vermutet, da in der ersteren nicht viel passiert.

EDIT : Sry , Zeile 41 ist beim ersten " tabHost.addTab(spec); "
 
Ich sehe die NPE aber in Zeile 141, nicht in Zeile 41.

Gesendet von meinem MB525 mit Tapatalk 2
 
also ich denke, dass du probleme mit dem TabHost hast, kann mich aber auch irren
 
ja denke auch, aber wieso :confused2: . TabHost ist seit Api 1 dabei, und mit Api 8 Emulator klappts ja auch, nur bei 7 stüärzt es ständig ab.

@maniac : da ist keine Zeile 141 in SYSDroidActivity :(
 
Hä? Du willst eine App (API8) mit einem Emulator (API 7) starten, sehe ich das richtig?
Das kann ja auch nicht gehen, umgekehrt könntest du es aber machen.
(also App mit API7 auf einem Emulator mit API8)
Aber so wird auf dem Emulator ja nur API 1-7 unterstützt, API8 also nicht..
Gruß
 
Haha nein so verpeilt bin ich dann auch nicht xD die app war ursprünglich für api 10 , aber um mehr user zu erreichen hab ich versucht die app für api 7 auszulegen .

Ich hab alles , dass api 8 oder mehr benötigt, aus der app entfernt. Die manifest- datei hab ich natürlich auch auf minsdk: 7 geändert.

Beim Test mit verschiedenen Apis auf dem Emulator hat die app aber nur unter version 2.2 und höher , also min. Api 8 funktioniert. Beim Api 7 emulator ist soe abgestürzt .

Meine Frage war jetzt, warum das passiert ist , also wo der Fehler liegt.
 
Ok an alle die das später mal lesen und das gleiche Problem haben :

Bei "extends TabActivity" gibt es wohl bei unter Api 8 Probleme, als Lösungsansatz , man soll einen AsyncTask statt der TabActivity verwenden, einfach mal googeln .

Ich hab das ganze jetzt erstmal aufgegeben , wenn noch jemand auf die genaue Lösung kommt, kann er sich ja melden.

Und danke an alle Antworten.
 

Ähnliche Themen

4
Antworten
10
Aufrufe
1.091
jogimuc
J
Zurück
Oben Unten