问题描述
- Android诡异的bug求大神解救
- logcat报错Unable to start activity ComponentInfo{com.example.mymail/com.example.mymail,该Loginactivity放在项目的com.example.mymail包中。。估计是注册文件androidmanifest文件的错误,修改了其Activity name中的路径,相对路径,绝对路径全改过但仍出同样的错,求大神指点
解决方案
Android中的""Unable to start activity ComponentInfo""的错误
最近在做一款音乐播放器的时候,然后在调试的过程中发现一直报这个错误""Unable to start activity ComponentInfo"",从字面的意思看是无法启动某个activity组件,但是看了manifest文件,所有的activity组件都已经注册过了,为什么会报这种错误?后来发现原来是注册路径出了问题,最开始的代码是这样的: 见:http://www.cnblogs.com/dolphin0520/archive/2011/12/02/2271922.html
解决方案二:
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
[java] view plaincopyprint?
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""
请注意,ImageView结束标签
修改后的代码:
[xhtml] view plaincopyprint?
<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.(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。
修改后的代码:
[java] view plaincopyprint?
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); }