아래와 같은 소스를 2.2 이상에서 실행하면 문제없이 동작합니다.

하지만 2.1 이하의 폰이나 에뮬에서 실행하면 nullpointerexception이 발생합니다.

구글링을 계속 해보고 있는데 해결책을 못찾겠네요 ㅠㅠ


일단 아래 링크를 참조하면

http://stackoverflow.com/questions/2942108/why-do-i-get-a-null-pointer-exception-from-tabwidget

데이터를 로드하기전에 그려서 그렇다고 하는거 같은데..


고수님들의 도움 부탁드립니다 ㅠㅠ


-main.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
       
        <WebView
            android:id="@+id/webView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
        />
        <WebView
            android:id="@+id/webView2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
        />
        <WebView
            android:id="@+id/webView3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
        />
        <WebView
            android:id="@+id/webView4"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
        />
        <WebView
            android:id="@+id/webView5"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
        />
        <ProgressBar
            android:id="@+id/progressBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="10dp"
            android:max="100"
            android:visibility="gone"
        />
    </FrameLayout>
</TabHost>


-activity

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        mTabHost = getTabHost();
        mTabWidget = getTabHost().getTabWidget();
       
        LayoutInflater inflater = LayoutInflater.from(this);

        inflater.inflate(R.layout.main, mTabHost.getTabContentView(), true);
       
        mTabHost.addTab(mTabHost.newTabSpec("tab1")
                .setIndicator("tab1", getResources().getDrawable(R.drawable.image)).setContent(R.id.webView1));
        mTabHost.addTab(mTabHost.newTabSpec("tab2")
                .setIndicator("tab2", getResources().getDrawable(R.drawable.image)).setContent(R.id.webView2));
        mTabHost.addTab(mTabHost.newTabSpec("tab3")
                .setIndicator("tab3",getResources().getDrawable(R.drawable.image)).setContent(R.id.webView3));
        mTabHost.addTab(mTabHost.newTabSpec("tab4")
                .setIndicator("tab4",getResources().getDrawable(R.drawable.image)).setContent(R.id.webView4));
        mTabHost.addTab(mTabHost.newTabSpec("tab5")
                .setIndicator("tab5",getResources().getDrawable(R.drawable.image)).setContent(R.id.webView5));
       
        mTabHost.setOnTabChangedListener(this);
        mTabHost.setCurrentTab(onTabChanged("tab1", 0));
    }


-log

01-16 11:32:44.574: W/dalvikvm(683): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
01-16 11:32:45.345: E/AndroidRuntime(683): Uncaught handler: thread main exiting due to uncaught exception
01-16 11:32:45.454: E/AndroidRuntime(683): java.lang.NullPointerException
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.widget.TabWidget.dispatchDraw(TabWidget.java:206)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.View.draw(View.java:6538)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.View.draw(View.java:6538)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
01-16 11:32:45.454: E/AndroidRuntime(683):     at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1830)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewRoot.draw(ViewRoot.java:1349)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1114)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.os.Looper.loop(Looper.java:123)
01-16 11:32:45.454: E/AndroidRuntime(683):     at android.app.ActivityThread.main(ActivityThread.java:4363)
01-16 11:32:45.454: E/AndroidRuntime(683):     at java.lang.reflect.Method.invokeNative(Native Method)
01-16 11:32:45.454: E/AndroidRuntime(683):     at java.lang.reflect.Method.invoke(Method.java:521)
01-16 11:32:45.454: E/AndroidRuntime(683):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
01-16 11:32:45.454: E/AndroidRuntime(683):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-16 11:32:45.454: E/AndroidRuntime(683):     at dalvik.system.NativeStart.main(Native Method)