Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 2047|回复: 0

[默认分类] Unable to start activity ComponentInfo 解决方法

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-5 15:18:07 | 显示全部楼层 |阅读模式

       
    解决案例一:
    错误信息如下:
      ERROR/AndroidRuntime(327): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.lee.android/org.lee.android.radioPlayer}: java.lang.ClassCastException: android.widget.ImageView
      
      
       public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);//以debug模式运行时,运行到此处,程序崩溃。
    }
       
      

      

      

      结论:
      

      main.xml文件出错。好好检查下吧,不要太相信xml编辑器,有些错误,编辑器不会报错的。
      

      我的错误如下:
      

      定位错误代码:
      

      

      
    请注意,ImageView开始标签
      
      
           <ImageView
       
      
         android:layout_height="20dip"
       
      
           android:layout_width="wrap_content"
       
      
         android:id="@+id/ibadd"
       
      
         android:src="@drawable/freadd"
       
      
       android:layout_alignParentRight="true"
       
      
         >
       
      

       
      
        <TextView
       
      
          android:layout_height="20dip"
       
      
           android:layout_width="wrap_content"
       
      
           android:layout_gravity="center"
       
      
           android:id="@+id/tvfre"
       
      
         >  
       
      
         </TextView>
       
      
         
       
        </ImageView>请注意,ImageView结束标签
      修改后的代码:
      
       
       
       
            <ImageView
      android:layout_height="20dip"
        android:layout_width="wrap_content"
      android:id="@+id/ibadd"
      android:src="@drawable/freadd"
    android:layout_alignParentRight="true"
      >
    </ImageView>
    <TextView
       android:layout_height="20dip"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:id="@+id/tvfre"
      >  
      </TextView>
       
       
       解决案例二:
       错误信息:
       java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.lee.android/org.lee.android.MyListView4}: java.lang.NullPointerException
        Caused by: java.lang.NullPointerException
        at org.lee.android.MyListView4.<init>(MyListView4.java:48)
         
       错误代码:
       
        private int defaultDrawable=R.drawable.radio;
         
        private String defaultTitle=getString(R.string.defaulTitle);//这是第48行,也就是NullPointerException的地方
       
       private String defaultInfo=getString(R.string.defaulInfo);
         
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                setContentView(R.layout.vlist2);                                                                           
          findViews();
          setListeners();
        }
        private void findViews()
        {
        tvTitle=(TextView)findViewById(R.id.mainTitleText);
        imgpre=(ImageView)findViewById(R.id.imgpre);
        }
       

       错误分析:
        android布局分析时,是加载
       layout后再加载  R.string 的,而我提前用R.string来初始化变量,所以出错
       

       解决方案:
        setContentView(R.layout.vlist2);        之后再初始化defaultTitle,defaultInfo。
       修改后的代码:        private int defaultDrawable=R.drawable.radio;
            private String defaultTitle;
           
    private String defaultInfo;

            @Override
            public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                     
             setContentView(R.layout.vlist2);                                                                          
          
                      findViews();
                      setListeners();
            }
            private void findViews()
            {
                    tvTitle=(TextView)findViewById(R.id.mainTitleText);
                    imgpre=(ImageView)findViewById(R.id.imgpre);
    defaultTitle=getString(R.string.defaulTitle);
                   
    defaultInfo=getString(R.string.defaulInfo);
            }

         
       

         
       
      
       
       
          
       
         
       
      
      

      
       
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-24 04:53 , Processed in 0.384172 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表