Android TabActivity-无法恢复活动;onResume()方法&;空指针异常

Android TabActivity-无法恢复活动;onResume()方法&;空指针异常,android,samsung-mobile,tabactivity,Android,Samsung Mobile,Tabactivity,我有一个有趣的Android开发问题。 我在我的应用程序中使用了TabActivity(我知道它已被弃用),它可以在3个选项卡(手动和自动处理,以及配置选项卡)之间进行选择和导航;应用程序的主要目标现在不相关了 几天前,我在其他类型的设备上测试了该应用程序:在阿尔卡特手机上,不记得确切的类型;在此之前,三星Galaxy S4和其他较旧的三星设备;不过,还有一款没有名字的中国安卓平板电脑这些设备都没有TabActivity问题。 但现在,我尝试在三星Galaxy S2和HTC Desire S上使

我有一个有趣的Android开发问题。 我在我的应用程序中使用了TabActivity(我知道它已被弃用),它可以在3个选项卡(手动和自动处理,以及配置选项卡)之间进行选择和导航;应用程序的主要目标现在不相关了

几天前,我在其他类型的设备上测试了该应用程序:在阿尔卡特手机上,不记得确切的类型;在此之前,三星Galaxy S4和其他较旧的三星设备;不过,还有一款没有名字的中国安卓平板电脑这些设备都没有TabActivity问题。

但现在,我尝试在三星Galaxy S2和HTC Desire S上使用该应用程序,由于使用TabActivity,这两款设备都崩溃了

为了更容易想象GUI:三个选项卡,第三个是带有一些子菜单的菜单。在三个基本选项卡之间导航不会产生任何问题。但是:如果我在第三个选项卡上进入其中一个子菜单,然后尝试返回菜单(已实现,或物理“返回”按钮,无所谓),应用程序将崩溃

错误消息如下所示:

08-21 09:46:18.170: E/AndroidRuntime(7781): FATAL EXCEPTION: main
08-21 09:46:18.170: E/AndroidRuntime(7781): java.lang.RuntimeException: Unable to resume activity {com.example.MY_PROJECT/com.example.MY_PROJECT.ControlActivity}: java.lang.NullPointerException
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2571)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2592)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1080)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.os.Looper.loop(Looper.java:150)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.app.ActivityThread.main(ActivityThread.java:4385)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at java.lang.reflect.Method.invokeNative(Native Method)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at java.lang.reflect.Method.invoke(Method.java:507)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at dalvik.system.NativeStart.main(Native Method)
08-21 09:46:18.170: E/AndroidRuntime(7781): Caused by: java.lang.NullPointerException
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.widget.TabWidget.setCurrentTab(TabWidget.java:344)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.widget.TabWidget.focusCurrentTab(TabWidget.java:368)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.widget.TabHost.setCurrentTab(TabHost.java:323)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.widget.TabHost.addTab(TabHost.java:216)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at com.example.MY_PROJECT.ControlActivity.setTabs(ControlActivity.java:186)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at com.example.MY_PROJECT.ControlActivity.onResume(ControlActivity.java:160)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1242)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.app.Activity.performResume(Activity.java:4004)
08-21 09:46:18.170: E/AndroidRuntime(7781):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2561)
08-21 09:46:18.170: E/AndroidRuntime(7781):     ... 10 more
一些可能很重要的Java代码:

@Override
    protected void onResume() {

        super.onResume();
        Resources res = getResources();
        this.setTitle(res.getString(R.string.title_activity_main_menu));
        mTabHost.clearAllTabs();
        setTabs();
        MainActivity.isAnotherDevSel = false;
    }

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        initial(); //Initializing variables
        mTabHost = getTabHost();
        setTabs();
    }

    public void setTabs() {

        tempPos = position;
        Resources res = getResources();
        tabspecAutoTab = mTabHost.newTabSpec("auto")
                .setIndicator(res.getString(R.string.title_pagecontname))
                .setContent(new Intent(ControlActivity.this, AutoTab.class));
        tabspecManualTab = mTabHost.newTabSpec("manual")
                .setIndicator(res.getString(R.string.title_pagemanname))
                .setContent(new Intent(ControlActivity.this, ManualTab.class));
        tabspecConfigTab = mTabHost.newTabSpec("config")
                .setIndicator(res.getString(R.string.title_pageconfname))
                .setContent(new Intent(ControlActivity.this, ConfigTab.class));

        mTabHost.addTab(tabspecAutoTab);
        mTabHost.addTab(tabspecManualTab);
        mTabHost.addTab(tabspecConfigTab);

        mTabHost.setOnTabChangedListener(new OnTabChangeListener() {

            @Override
            public void onTabChanged(String tabId) {

                if ("auto".equals(tabId)) {
                    ManualTab.isManualInfo = false;
                    position = 0;
                }

                else if ("manual".equals(tabId)) {
                    AutoTab.isAutoInfo = false;
                    position = 1;
                }

                if ("config".equals(tabId)
                        && (AutoTab.isAutoRunning || ManualTab.isManualRunning)) {

                    AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                            ControlActivity.this);

                    alertDialog.setTitle(R.string.running_program);

                    alertDialog.setMessage(R.string.not_use_config);

                    alertDialog.setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {

                                public void onClick(DialogInterface dialog,
                                        int which) {

                                    if (AutoTab.isAutoRunning) {
                                        mTabHost.setCurrentTab(0);
                                    } else if (ManualTab.isManualRunning) {
                                        mTabHost.setCurrentTab(1);
                                    }
                                }
                            });
                    alertDialog.setCancelable(false);
                    AlertDialog alertDialogBuilder = alertDialog.create();

                    alertDialogBuilder.show();
                }
            }
        });

        mTabHost.setCurrentTab(tempPos);
    }
我试图找到类似的问题,但没有成功

有什么想法吗?
提前感谢。:)

致以最诚挚的问候,
Zs

调试窗口

<terminated>MY_PROJECT [Android Application]    
    <disconnected>DalvikVM[localhost:8600]  
MY_PROJECT [Android Application]    
    DalvikVM[localhost:8600]    
        Thread [<1> main] (Suspended (exception NullPointerException))  
            <VM does not provide monitor information>   
            TabWidget.setCurrentTab(int) line: 344  
            TabWidget.focusCurrentTab(int) line: 368    
            TabHost.setCurrentTab(int) line: 323    
            TabHost.addTab(TabHost$TabSpec) line: 216   
            ControlActivity.setTabs() line: 211 
            ControlActivity.onResume() line: 160    
            Instrumentation.callActivityOnResume(Activity) line: 1242   
            ControlActivity(Activity).performResume() line: 4004    
            ActivityThread.performResumeActivity(IBinder, boolean) line: 2561   
            ActivityThread.handleResumeActivity(IBinder, boolean, boolean) line: 2592   
            BinderProxy(ActivityThread$H).handleMessage(Message) line: 1080 
            ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
            Looper.loop() line: 150 
            ActivityThread.main(String[]) line: 4385    
            Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
            Method.invoke(Object, Object...) line: 507  
            ZygoteInit$MethodAndArgsCaller.run() line: 849  
            ZygoteInit.main(String[]) line: 607 
            NativeStart.main(String[]) line: not available [native method]  
        Thread [<8> Binder Thread #2] (Running) 
        Thread [<7> Binder Thread #1] (Running) 
        Thread [<10> AsyncTask #1] (Running)    
        Thread [<11> Binder Thread #3] (Running)    
        Thread [<12> Thread-12] (Running)   

setTabs():

    this    ControlActivity  (id=830007806776)  
    address "00:14:03:18:68:92" (id=830007826024)   
    bluetoothAdapter    BluetoothAdapter  (id=830008015408) 
    btDevice    BluetoothDevice  (id=830008071648)  
    btMessage   "0/ 3.52/ 0.00\r" (id=830007771352) 
    bundle  Bundle  (id=830008071800)   
    dsm DefaultSettingsManager  (id=830008395608)   
    handler ControlActivity$1  (id=830007939176)    
    isNotInFront    true    
    mActivity_dispatchPenEvent  null    
    mActivity_onPenEvent    null    
    mActivityInfo   ActivityInfo  (id=830008207600) 
    mApplication    Application  (id=830007937232)  
    mBase   ContextImpl  (id=830008089024)  
    mBase   ContextImpl  (id=830008089024)  
    mCalled true    
    mComponent  ComponentName  (id=830008207352)    
    mConfigChangeFlags  0   
    mCurrentConfig  Configuration  (id=830008198384)    
    mDecor  PhoneWindow$DecorView  (id=830008078448)    
    mDefaultKeyMode 0   
    mDefaultKeySsb  null    
    mDefaultTab null    
    mDefaultTabIndex    -1  
    mEmbeddedID null    
    mExecuteFastLaunch  false   
    mFinished   false   
    mHandler    Handler  (id=830008065464)  
    mIdent  1082549496  
    mInflater   PhoneLayoutInflater  (id=830008198232)  
    mInstrumentation    Instrumentation  (id=830007792592)  
    mIntent Intent  (id=830008207200)   
    mLastNonConfigurationChildInstances null    
    mLastNonConfigurationInstance   null    
    mLocalActivityManager   LocalActivityManager  (id=830007825000) 
    mMainThread ActivityThread  (id=830007781896)   
    mManagedCursors ArrayList  (id=830008207176)    
    mManagedDialogs null    
    mMenuSize   0   
    mParent null    
    mResultCode 0   
    mResultData null    
    mResumed    true    
    mSearchManager  null    
    mStartedActivity    false   
    mStopped    false   
    mTabHost    TabHost  (id=830008193424)  
    mTheme  Resources$Theme  (id=830008073688)  
    mThemeResource  2131427447  
    mTitle  " (id=830007786896)" (id=830007786896)  
    mTitleColor 0   
    mTitleReady true    
    mToken  BinderProxy  (id=830008207544)  
    mUiThread   Thread  (id=830002591192)   
    mVisibleFromClient  true    
    mVisibleFromServer  false   
    mWindow PhoneWindow  (id=830008199768)  
    mWindowAdded    true    
    mWindowManager  Window$LocalWindowManager  (id=830008089384)    
    MY_UUID UUID  (id=830008067000) 
    progressDialog  ProgressDialog  (id=830007765240)   
    releaseMemoryRunnable   Activity$1  (id=830007961136)   
    res Resources  (id=830007936080)    
    tabspecAutoTab  TabHost$TabSpec  (id=830008573904)  
    tabspecConfigTab    TabHost$TabSpec  (id=830008574224)  
    tabspecManualTab    TabHost$TabSpec  (id=830008574064)  
    tempPos 2   
    res Resources  (id=830007936080)    

onResume():

    this    ControlActivity  (id=830007806776)  
    address "00:14:03:18:68:92" (id=830007826024)   
    bluetoothAdapter    BluetoothAdapter  (id=830008015408) 
    btDevice    BluetoothDevice  (id=830008071648)  
    btMessage   "0/ 3.52/ 0.00\r" (id=830007771352) 
    bundle  Bundle  (id=830008071800)   
    dsm DefaultSettingsManager  (id=830008395608)   
    handler ControlActivity$1  (id=830007939176)    
    isNotInFront    true    
    mActivity_dispatchPenEvent  null    
    mActivity_onPenEvent    null    
    mActivityInfo   ActivityInfo  (id=830008207600) 
    mApplication    Application  (id=830007937232)  
    mBase   ContextImpl  (id=830008089024)  
    mBase   ContextImpl  (id=830008089024)  
    mCalled true    
    mComponent  ComponentName  (id=830008207352)    
    mConfigChangeFlags  0   
    mCurrentConfig  Configuration  (id=830008198384)    
    mDecor  PhoneWindow$DecorView  (id=830008078448)    
    mDefaultKeyMode 0   
    mDefaultKeySsb  null    
    mDefaultTab null    
    mDefaultTabIndex    -1  
    mEmbeddedID null    
    mExecuteFastLaunch  false   
    mFinished   false   
    mHandler    Handler  (id=830008065464)  
    mIdent  1082549496  
    mInflater   PhoneLayoutInflater  (id=830008198232)  
    mInstrumentation    Instrumentation  (id=830007792592)  
    mIntent Intent  (id=830008207200)   
    mLastNonConfigurationChildInstances null    
    mLastNonConfigurationInstance   null    
    mLocalActivityManager   LocalActivityManager  (id=830007825000) 
    mMainThread ActivityThread  (id=830007781896)   
    mManagedCursors ArrayList  (id=830008207176)    
    mManagedDialogs null    
    mMenuSize   0   
    mParent null    
    mResultCode 0   
    mResultData null    
    mResumed    true    
    mSearchManager  null    
    mStartedActivity    false   
    mStopped    false   
    mTabHost    TabHost  (id=830008193424)  
    mTheme  Resources$Theme  (id=830008073688)  
    mThemeResource  2131427447  
    mTitle  " (id=830007786896)" (id=830007786896)  
    mTitleColor 0   
    mTitleReady true    
    mToken  BinderProxy  (id=830008207544)  
    mUiThread   Thread  (id=830002591192)   
    mVisibleFromClient  true    
    mVisibleFromServer  false   
    mWindow PhoneWindow  (id=830008199768)  
    mWindowAdded    true    
    mWindowManager  Window$LocalWindowManager  (id=830008089384)    
    MY_UUID UUID  (id=830008067000) 
    progressDialog  ProgressDialog  (id=830007765240)   
    releaseMemoryRunnable   Activity$1  (id=830007961136)   
    res Resources  (id=830007936080)    
    tabspecAutoTab  TabHost$TabSpec  (id=830008573904)  
    tabspecConfigTab    TabHost$TabSpec  (id=830008574224)  
    tabspecManualTab    TabHost$TabSpec  (id=830008574064)  
    tempPos 2   
    res Resources  (id=830007936080)
MY_项目[Android应用程序]
DalvikVM[localhost:8600]
MY_项目[Android应用程序]
DalvikVM[localhost:8600]
线程[main](挂起(异常NullPointerException))
TabWidget.setCurrentTab(int)行:344
TabWidget.focusCurrentTab(int)行:368
TabHost.setCurrentTab(int)行:323
TabHost.addTab(TabHost$TabSpec)行:216
ControlActivity.setTabs()行:211
ControlActivity.onResume()行:160
检测.callActivityOnResume(活动)行:1242
ControlActivity(Activity).performResume()行:4004
ActivityThread.performResumeActivity(IBinder,布尔值)行:2561
ActivityThread.handleResumeActivity(IBinder、布尔、布尔)行:2592
BinderProxy(ActivityThread$H).handleMessage(消息)行:1080
ActivityThread$H(处理程序)。dispatchMessage(消息)行:99
Looper.loop()行:150
ActivityThread.main(字符串[])行:4385
invokenactive(Object,Object[],Class,Class[],Class,int,boolean)行:不可用[本机方法]
调用(对象,对象…)行:507
ZygoteInit$MethodAndArgsCaller.run()行:849
颧骨单位。主(字符串[])行:607
NativeStart.main(字符串[])行:不可用[本机方法]
螺纹[活页夹螺纹#2](运行)
螺纹[活页夹螺纹#1](运行)
线程[AsyncTask#1](正在运行)
螺纹[活页夹螺纹#3](运行)
螺纹[Thread-12](正在运行)
setTabs():
此控制活动(id=830007806776)
地址“00:14:03:18:68:92”(id=830007826024)
蓝牙适配器蓝牙适配器(id=830008015408)
蓝牙设备(id=830008071648)
btMessage“0/3.52/0.00\r”(id=830007771352)
捆绑包(id=830008071800)
dsm DefaultSettingsManager(id=830008395608)
处理程序控制活动$1(id=830007939176)
这不是真的吗
MacActivity\u dispatchPenEvent null
mActivity_onPenEvent null
mActivityInfo活动信息(id=830008207600)
地图应用程序(id=830007937232)
mBase ContextImpl(id=830008089024)
mBase ContextImpl(id=830008089024)
mCalled true
mComponent组件名称(id=830008207352)
mConfigChangeFlags 0
mCurrentConfig配置(id=830008198384)
mDecor电话窗口$DecorView(id=830008078448)
mDefaultKeyMode 0
MDEFAULTKEYSB null
mDefaultTab null
mDefaultTabIndex-1
mEmbeddedID为空
mExecuteFastLaunch false
伪造
mHandler处理程序(id=830008065464)
中部1082549496
mInflater PhoneLayoutFlater(id=830008198232)
分诊仪器(id=830007792592)
MINENT意向(id=830008207200)
MLASTNonfigurationChildInstances null
mLastNonConfigurationInstance null
本地活动管理器本地活动管理器(id=830007825000)
mMainThread ActivityThread(id=830007781896)
mManagedCursors阵列列表(id=830008207176)
mManagedDialogs空
mMenuSize 0
mParent空
mResultCode 0
mResultData null
我认为是真的
mSearchManager null
mStartedActivity false
错误的
mTabHost选项卡主机(id=830008193424)
mTheme资源$Theme(id=830008073688)
mThemeResource 2131427447
mTitle“(id=830007786896)”(id=830007786896)
mTitleColor 0
mTitleReady-true
mToken BinderProxy(id=830008207544)
mUiThread线程(id=830002591192)
mVisibleFromClient true
mVisibleFromServer错误
mWindow电话窗口(id=830008199768)
mWindowAdded是真的
mWindowManager窗口$LocalWindowManager(id=830008089384)
我的UUID UUID(id=830008067000)
progressDialog progressDialog(id=830007765240)
releaseMemoryRunnable活动$1(id=830007961136)
资源(id=830007936080)
tabspecAutoTab TabHost$TabSpec(id=830008573904)
tabspecConfigTab TabHost$TabSpec(id=830008574224)
tabspecManualTab TabHost$TabSpec(id=830008574064)
临时职位2
重新
    tabspecAutoTab = mTabHost.newTabSpec("auto")
            .setIndicator(res.getString(R.string.title_pagecontname))
            .setContent(new Intent(getApplicationContext(), AutoTab.class));
    tabspecManualTab = mTabHost.newTabSpec("manual")
            .setIndicator(res.getString(R.string.title_pagemanname))
            .setContent(new Intent(getApplicationContext(), ManualTab.class));
    tabspecConfigTab = mTabHost.newTabSpec("config")
            .setIndicator(res.getString(R.string.title_pageconfname))
            .setContent(new Intent(getApplicationContext(), ConfigTab.class));
mTabHost.setCurrentTab(0);
mTabHost.clearAllTabs();