TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
解决案例一:
错误信息如下:
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);
}
|
|