我正在使用TabHost創建一個帶有3個選項卡的簡單標籤界面。當我運行我的應用程序有錯誤,調試器顯示以下內容:Android TabHost導致運行時錯誤
這看起來奇怪,因爲ActivityThread是Android的源的一部分。我曾在StackOverflow上尋找類似的問題,但他們沒有幫助。我很困惑,我會很感激你的幫助。
這裏是我的代碼:
標記:
<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"
tools:context=".MainActivity" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="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:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tab1Layout"
android:orientation="vertical">
<TextView
android:id="@+id/tab1_text"
android:text="test tab 1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tab2Layout"
android:orientation="vertical">
<TextView
android:id="@+id/tab2_text"
android:text="test tab 2"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tab3Layout"
android:orientation="vertical">
<TextView
android:id="@+id/tab3_text"
android:text="test tab 3"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</RelativeLayout>
代碼:
package com.company.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// test tabs functionality
TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
TabSpec resultsAll = tabHost.newTabSpec("tab1");
resultsAll
.setContent(R.id.tab1Layout)
.setIndicator("All");
TabSpec resultsWords = tabHost.newTabSpec("tab2");
resultsAll
.setContent(R.id.tab2Layout)
.setIndicator("Words");
TabSpec resultsTerms = tabHost.newTabSpec("tab3");
resultsAll
.setContent(R.id.tab3Layout)
.setIndicator("Terms");
tabHost.addTab(resultsAll);
tabHost.addTab(resultsWords);
tabHost.addTab(resultsTerms);
tabHost.setCurrentTab(0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
的logcat:
05-02 10:02:13.024: E/AndroidRuntime(79): Error reporting WTF
05-02 10:02:13.024: E/AndroidRuntime(79): java.lang.NullPointerException
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.RuntimeInit.wtf(RuntimeInit.java:345)
05-02 10:02:13.024: E/AndroidRuntime(79): at android.util.Log$1.onTerribleFailure(Log.java:103)
05-02 10:02:13.024: E/AndroidRuntime(79): at android.util.Log.wtf(Log.java:278)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.BatteryStatsImpl.getNetworkStatsDetailGroupedByUid(BatteryStatsImpl.java:5738)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.BatteryStatsImpl.access$100(BatteryStatsImpl.java:76)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.BatteryStatsImpl$Uid.computeCurrentTcpBytesReceived(BatteryStatsImpl.java:2457)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.BatteryStatsImpl$Uid.getTcpBytesReceived(BatteryStatsImpl.java:2446)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.BatteryStatsImpl.writeSummaryToParcel(BatteryStatsImpl.java:5437)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.BatteryStatsImpl.writeLocked(BatteryStatsImpl.java:4836)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.internal.os.BatteryStatsImpl.writeAsyncLocked(BatteryStatsImpl.java:4818)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.server.am.ActivityManagerService.<init>(ActivityManagerService.java:1492)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.server.am.ActivityManagerService.<init>(ActivityManagerService.java:151)
05-02 10:02:13.024: E/AndroidRuntime(79): at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1393)
除了使用'TabHost tabHost =(TabHost)findViewById(android.R.id.tabhost);'只是嘗試用'TabHost tabHost = getTabHost();' – GrIsHu 2013-05-02 07:50:33
@GrIsHu這億韓元不起作用,因爲我沒有擴展已棄用的TabActivity類。 – noname 2013-05-02 08:09:55
它與om.android.internal.os.BatteryStatsImpl.getNetworkStatsDetailGroupedByUid()有什麼關係? – 2013-10-24 14:15:53