<p>解决案例一:</p><pre class="brush:java;toolbar:false">publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//以debug模式运行时,运行到此处,程序崩溃。
}</pre><p>错误信息如下:</p><pre class="brush:delphi;toolbar:false">ERROR/AndroidRuntime(327):java.lang.RuntimeException:UnabletostartactivityComponentInfo{org.lee.android/org.lee.android.radioPlayer}:java.lang.ClassCastException:android.widget.ImageView</pre><p></p><p>结论:</p><p>main.xml文件出错。好好检查下吧,不要太相信xml编辑器,有些错误,编辑器不会报错的。</p><p>我的错误如下:</p><p>定位错误代码:</p><p>请注意,ImageView开始标签</p><pre class="brush:xml;toolbar:false"><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></pre><p>请注意,ImageView结束标签<br/></p><p>修改后的代码:</p><pre class="brush:java;toolbar:false"><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></pre><p>解决案例二:</p><p>错误信息:</p><pre class="brush:java;toolbar:false">java.lang.RuntimeException:UnabletoinstantiateactivityComponentInfo{org.lee.android/org.lee.android.MyListView4}:java.lang.NullPointerException
Causedby:java.lang.NullPointerException
atorg.lee.android.MyListView4.<init>(MyListView4.java:48)</pre><p></p><p>错误代码:</p><pre class="brush:java;toolbar:false">privateintdefaultDrawable=R.drawable.radio;
privateStringdefaultTitle=getString(R.string.defaulTitle);//这是第48行,也就是NullPointerException的地方
privateStringdefaultInfo=getString(R.string.defaulInfo);
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.vlist2);
findViews();
setListeners();
}
privatevoidfindViews()
{
tvTitle=(TextView)findViewById(R.id.mainTitleText);
imgpre=(ImageView)findViewById(R.id.imgpre);
}</pre><p>错误分析:</p><p>android布局分析时,是加载</p><p>layout后再加载 R.string 的,而我提前用R.string来初始化变量,所以出错</p><p>解决方案:</p><p>setContentView(R.layout.vlist2); 之后再初始化defaultTitle,defaultInfo。</p><p>修改后的代码:</p><pre class="brush:java;toolbar:false"> privateintdefaultDrawable=R.drawable.radio;
privateStringdefaultTitle;
privateStringdefaultInfo;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.vlist2);
findViews();
setListeners();
}
privatevoidfindViews()
{
tvTitle=(TextView)findViewById(R.id.mainTitleText);
imgpre=(ImageView)findViewById(R.id.imgpre);
defaultTitle=getString(R.string.defaulTitle);
defaultInfo=getString(R.string.defaulInfo);
}</pre>