`
410133062
  • 浏览: 25920 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TabHost MonkeyTest 死机问题 Uncaughthandler:thread main exiting due to uncaught exce

 
阅读更多
做monkey测试时,总碰到一个死机的问题
2515:30:19.010E/AndroidRuntime(2878):Uncaughthandler:thread main exiting due to uncaught exception
09-2515:30:19.026E/AndroidRuntime(2878):java.lang.NullPointerException 09-2515:30:19.026E/AndroidRuntime(2878):atandroid.widget.TabHost.dispatchWindowFocusChanged(TabHost.java:295) 09-2515:30:19.026E/AndroidRuntime(2878):atandroid.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 09-2515:30:19.026E/AndroidRuntime(2878):atandroid.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 09-2515:30:19.026E/AndroidRuntime(2878):atandroid.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:661) 09-


可以看出是 TabHost.java 第295行,只在2.1和之前的版本报,找到2.1版本的代码看出
    @Override
    public void dispatchWindowFocusChanged(boolean hasFocus) {
        mCurrentView.dispatchWindowFocusChanged(hasFocus);//第295行
    }
原因找到了,mCurrentView 为空导致的。

在看后续Android版本这块的代码
    @Override
    public void dispatchWindowFocusChanged(boolean hasFocus) {
        if (mCurrentView != null){
            mCurrentView.dispatchWindowFocusChanged(hasFocus);
        }
    }
说明这个问题可能是系统BUG,在后续已经被修复了

那么只需要自定义一个TabHost类,替换掉应用中的TabHost 即可,就可以避免这种BUG在低版本机器上发生.
public class ESTabHost extends TabHost {

public ESTabHost(Context context) {
super(context);
}

public ESTabHost(Context context, AttributeSet attrs) {
super(context, attrs);
}

    @Override
    public void dispatchWindowFocusChanged(boolean hasFocus) {
    try {
super.dispatchWindowFocusChanged(hasFocus);
} catch (Exception e) {
}
    }
}



0
0
分享到:
评论

相关推荐

    TabHost_Test简单的例子 .zip

    本示例项目“TabHost_Test”旨在提供一个简单的TabHost使用教程,通过配套博客的详细解析,帮助开发者更好地理解和运用这个组件。 TabHost是一个容器,它允许开发者在界面上放置多个TabWidget(选项卡)和一个...

    Android 嵌套TabHost示例

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...

    仿新浪微博tabhost实现

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建具有多个标签(Tab)的界面,每个标签对应一个不同的活动(Activity)。本教程将详细讲解如何使用TabHost来实现类似新浪微博的应用界面,以供开发者...

    安卓 tabhost嵌套tabhost

    当我们提到“安卓 TabHost 嵌套 TabHost”,这意味着在一个TabHost内,我们还要再创建一个TabHost,形成一个多层选项卡的结构,以提供更复杂的导航体验。 首先,我们来理解基本的TabHost用法。TabHost通常由两部分...

    TabHost详解 博文对应源码(三):继承自TabActivity

    在Android开发中,TabHost是一个重要的组件,它用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者视图(View)。这篇博客文章"TabHost详解 博文对应源码(三):继承自TabActivity...

    android自定义TabHost

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的界面,每个选项卡可以展示不同的内容。在传统的TabHost使用中,我们通常只能使用系统预设的样式和颜色,但为了使应用更加个性化,开发者...

    解决TabHost下面白线

    在Android开发中,TabHost是一个常用的组件,用于实现多页面的切换效果,通常与TabWidget和FrameLayout一起使用,创建类似手机应用底部导航栏的布局。然而,在实际使用过程中,开发者经常会遇到一个问题:TabHost...

    Android studio TabHost布局

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。本文将详细讲解如何在Android Studio中使用TabHost进行布局设计,以及如何自定义TabHost的...

    TabHost的使用方法

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签可以展示不同的内容或活动(Activity)。本教程将详细介绍如何使用TabHost,特别适合初学者和教学场景,例如构建一个模拟...

    andorid中TabHost的使用

    在Android开发中,TabHost是一个非常重要的组件,它允许我们创建具有多个标签(Tab)的界面,每个标签对应一个不同的活动(Activity)或视图(View)。本文将深入讲解如何在Android应用程序中有效地使用TabHost。 ...

    TabHost的简单使用

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动(Activity)。TabHost结合TabWidget和FrameLayout工作,TabWidget用于显示选项卡,而...

    android tabhost用法 源码

    在Android开发中,TabHost是实现标签栏切换界面的一个重要组件。TabHost允许开发者创建一个包含多个Tab的界面,每个Tab都可以关联到不同的活动(Activity)或者帧布局(FrameLayout)。下面将详细介绍TabHost的使用...

    Android TabHost组件使用方法详解

    在Android开发中,TabHost组件是一个非常实用的控件,用于创建带有标签页的应用界面,让用户可以在多个功能之间轻松切换。本文将详细讲解如何使用TabHost,并通过实例代码进行演示。 首先,TabHost的核心组成部分...

    android Tabhost 实现底部菜单效果

    在Android开发中,TabHost是实现底部导航菜单的一种传统方式,它允许用户在多个标签页之间切换,每个标签页通常代表一个不同的功能区域。本文将详细介绍如何使用TabHost来创建带有图片和文字,并且在选中时有明显...

    tabhost实现Android底部导航

    在Android开发中,TabHost是一种常用的组件,用于创建带有底部导航栏的应用界面。TabHost允许开发者将多个小部件(如Activity、View或者Intent)组织在一个TabWidget中,为用户提供直观的多视图切换功能。本篇文章将...

    Android fragment 内部嵌套tabhost组件

    8. **兼容性问题**:由于TabHost是早期Android API的一部分,所以在较低版本的Android系统上运行时,可能需要使用Support Library中的Fragment和TabHost的兼容版本。 9. **现代替代方案**:尽管TabHost仍然是可行的...

    Android的tabHost案例

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动。本案例是为初学者设计的,旨在帮助理解如何在Android应用中有效地使用TabHost。 ...

    仿微信例子,使用TabHost实现底部tab,显示未读信息条数

    - 这个项目可能包含了几个关键的文件:MainActivity.java(主Activity,包含TabHost的设置),activity_main.xml(主布局文件,包含TabHost和TabWidget),以及分别对应各个标签页的Fragment或Activity。...

    嵌套TabHost

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以关联到一个不同的Activity或Fragment。嵌套TabHost则是一种更复杂的设计模式,它允许在一个TabHost中包含另一个...

Global site tag (gtag.js) - Google Analytics