錯誤代碼:
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);
錯誤分析:
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);
第二種情況:
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_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_gravity="center"
android:id="@+id/tvfre"
>
</textview>
轉載:http://blog.csdn.net/chaoyu168/article/details/50378584