- 解决案例一:
- 错误信息如下:
- 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 plainprint?
- 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 plainprint?
- <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 plainprint?
- 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);
- }