java.lang.RuntimeException: Unable to start activity ComponentInfo

解决案例一:

错误信息如下:

ERROR/AndroidRuntime(327): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.lee.android/org.lee.android.radioPlayer}: java.lang.ClassCastException: android.widget.ImageView

 

view plaincopy to clipboardprint?

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结束标签

修改后的代码:

 

view plaincopy to clipboardprint?

  <ImageView  

 android:layout_height="20dip"   

   android:layout_width="wrap_content"  

 android:id="@+id/ibadd"  

 android:src="@drawable/freadd"  

ndroid:layout_alignParentRight="true"  

 >  

lt;/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。

 

修改后的代码:

 

view plaincopy to clipboardprint?

    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);  

    }  

 

 

 

 

 

 

大多数错误都出现在oncareate中 加载UI加载顺序上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值