Hilfe bei den Nullpointer auf API-Ebene 5
Frage
entwickelte ich meine Anwendung mit API-Ebene 8 aber das Minimum SDK ist 3. Ich habe die meisten der Tests auf einem Emulator 8 und meine DroidX sowie einige Freunde Telefone laufen. Keine Probleme bisher. Es sollte auch bekannt sein, dass ich keine API über Level 3 und das Tab-Layout war fast und genau von dem Beispiel von Google hier . Also .... wenn sie auf einem Emulator mit Level 5 API läuft ich folgende Fehlermeldung erhalten, und ich habe keine Ahnung, wo es herkommt mit Ausnahme der Verweise auf TabWidget.
Uncaught handler: thread main exiting due to uncaught exception
java.lang.NullPointerException
at android.widget.TabWidget.dispatchDraw(TabWidget.java:206)
at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
at android.view.View.draw(View.java:6539)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
at android.view.View.draw(View.java:6539)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1830)
at android.view.ViewRoot.draw(ViewRoot.java:1348)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1113)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1632)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4310)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Resources res = getResources(); // Resource object to get Drawables
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, parent.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("browse").setIndicator("Browse",
res.getDrawable(R.drawable.ic_tab_browse))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, bookmarks.class);
spec = tabHost.newTabSpec("bookmarks").setIndicator("Bookmarks",
res.getDrawable(R.drawable.ic_tab_bookmarks))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, search.class);
spec = tabHost.newTabSpec("search").setIndicator("Search",
res.getDrawable(R.drawable.ic_tab_search))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
Lösung
Ohne Code zur Arbeit mit, es schwierig ist, Ihnen viele Ratschläge zu geben.
-
Wenn Sie nicht
TabActivity
verwenden, stellen Sie sicher, dass Siesetup()
auf IhremTabHost
aufrufen, bevor irgendetwas anderes damit zu tun. -
Da die Ausnahme von
TabWidget
kommt, versuchen Sie vorübergehend Ihre Registerkarte Indikatoren zu vereinfachen und sehen, ob das hilft localize oder das Problem zu klären.
Andere Tipps
Meine TabHost zeigte Nullpointer Ausnahme für 2.1 zu dem Zeitpunkt aktualisiert, wenn ich es in Linearlayout gehalten, aber wenn ich Relative Layout versuchte es workes in Ordnung. so könnte diese Änderung Hilfe u sein, wenn in derselben Situation stucking.