Android中调用startActivity结果导致:java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}

Android中调用startActivity结果导致:上网查了一下,总结如下:

第一种情况:java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException

错误代码:

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

第二种情况:

错误信息如下:

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编辑器,有些错误,编辑器不会报错的。
我的错误如下:
定位错误代码:

<span style="color:#FF0000;">//请注意,ImageView开始标签
    <ImageView
  android:layout_height="20dip" 
    android:layout_width="wrap_content"
  android:id="@+id/ibadd"
  android:src="@drawable/freadd"
android:layout_alignParentRight="true"
  ></span>
 <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"  
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>  



上一篇:Service onStartCommand各种返回详解,解决问题:只调用onCreate不调用onStartCommand


下一篇:《R语言数据挖掘:实用项目解析》——1.13 缺失值(NA)的处理