android ClassCastException 类型转换错误
2016-03-09 10:04
337 查看
1.类型转换错误
03-09 09:45:01.884: E/AndroidRuntime(1847): FATAL EXCEPTION: main
03-09 09:45:01.884: E/AndroidRuntime(1847): Process: com.example.zhihudemo, PID: 1847
03-09 09:45:01.884: E/AndroidRuntime(1847): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.zhihudemo/com.example.zhihudemo.MainActivity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ImageView
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2219)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.os.Handler.dispatchMessage(Handler.java:102)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.os.Looper.loop(Looper.java:136)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.main(ActivityThread.java:5045)
03-09 09:45:01.884: E/AndroidRuntime(1847): at java.lang.reflect.Method.invokeNative(Native Method)
03-09 09:45:01.884: E/AndroidRuntime(1847): at java.lang.reflect.Method.invoke(Method.java:515)
03-09 09:45:01.884: E/AndroidRuntime(1847): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-09 09:45:01.884: E/AndroidRuntime(1847): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-09 09:45:01.884: E/AndroidRuntime(1847): at dalvik.system.NativeStart.main(Native Method)
03-09 09:45:01.884: E/AndroidRuntime(1847): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ImageView
03-09 09:45:01.884: E/AndroidRuntime(1847): at com.example.zhihudemo.MainActivity.onCreate(MainActivity.java:40)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.Activity.performCreate(Activity.java:5231)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2163)
03-09 09:45:01.884: E/AndroidRuntime(1847): ... 11 more
2.博主出错,是因为在调整 xml 布局的时候 没有 clean 项目,导致 bin 文件没有真正修改,所以现在 ImageView 的位置被认为还是 ViewPager 所以,出现类型转换错误
下面上 原布局 和 改动后的布局
原先是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.zhihudemo.MainActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="50dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面1"
android:textColor="#222222" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面2"
android:textColor="#222222" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面3"
android:textColor="#222222" />
</LinearLayout>
<ImageView
android:id="@+id/cursor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:src="@drawable/cursor" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
改动后:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.zhihudemo.MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="50dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面1"
android:textColor="#222222" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面2"
android:textColor="#222222" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面3"
android:textColor="#222222" />
</LinearLayout>
<ImageView
android:id="@+id/cursor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:src="@drawable/cursor" />
</LinearLayout>
</RelativeLayout>
解释:
其实 bin 文件已经编译好了,调换位置后由于改动较少,所以 xml 布局的改动并没有真正写入改动后的 bin 文件中,这是需要 clean 这个项目,重新编译即可
03-09 09:45:01.884: E/AndroidRuntime(1847): FATAL EXCEPTION: main
03-09 09:45:01.884: E/AndroidRuntime(1847): Process: com.example.zhihudemo, PID: 1847
03-09 09:45:01.884: E/AndroidRuntime(1847): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.zhihudemo/com.example.zhihudemo.MainActivity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ImageView
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2219)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.os.Handler.dispatchMessage(Handler.java:102)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.os.Looper.loop(Looper.java:136)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.main(ActivityThread.java:5045)
03-09 09:45:01.884: E/AndroidRuntime(1847): at java.lang.reflect.Method.invokeNative(Native Method)
03-09 09:45:01.884: E/AndroidRuntime(1847): at java.lang.reflect.Method.invoke(Method.java:515)
03-09 09:45:01.884: E/AndroidRuntime(1847): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-09 09:45:01.884: E/AndroidRuntime(1847): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-09 09:45:01.884: E/AndroidRuntime(1847): at dalvik.system.NativeStart.main(Native Method)
03-09 09:45:01.884: E/AndroidRuntime(1847): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ImageView
03-09 09:45:01.884: E/AndroidRuntime(1847): at com.example.zhihudemo.MainActivity.onCreate(MainActivity.java:40)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.Activity.performCreate(Activity.java:5231)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
03-09 09:45:01.884: E/AndroidRuntime(1847): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2163)
03-09 09:45:01.884: E/AndroidRuntime(1847): ... 11 more
2.博主出错,是因为在调整 xml 布局的时候 没有 clean 项目,导致 bin 文件没有真正修改,所以现在 ImageView 的位置被认为还是 ViewPager 所以,出现类型转换错误
下面上 原布局 和 改动后的布局
原先是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.zhihudemo.MainActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="50dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面1"
android:textColor="#222222" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面2"
android:textColor="#222222" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面3"
android:textColor="#222222" />
</LinearLayout>
<ImageView
android:id="@+id/cursor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:src="@drawable/cursor" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
改动后:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.zhihudemo.MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="50dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面1"
android:textColor="#222222" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面2"
android:textColor="#222222" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#999999"
android:gravity="center"
android:text="页面3"
android:textColor="#222222" />
</LinearLayout>
<ImageView
android:id="@+id/cursor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:src="@drawable/cursor" />
</LinearLayout>
</RelativeLayout>
解释:
其实 bin 文件已经编译好了,调换位置后由于改动较少,所以 xml 布局的改动并没有真正写入改动后的 bin 文件中,这是需要 clean 这个项目,重新编译即可
相关文章推荐
- android:screenOrientation属性
- android studio系列之更改包名
- Android-通知Notification全解析
- Android开发之从文件中读取数据
- android:windowSoftInputMode属性详解
- Android设备间实现蓝牙共享上网
- android studio的常用快捷键
- android实现短信自动转发
- android自定义dialog嵌套listview自适应屏幕
- Android常用的第三方库整理
- Android编程实现根据不同日期计算天数差的方法
- Android 初学 往内存中写数据
- Android APK反编译就这么简单
- Android定时执行01
- android:强大的图片下载和缓存库Picasso
- Android开发之文件存储
- Android修改AlertDialog的背景颜色
- Android开发之RecyclerView的使用全解
- Android设备通过wifi连接adb调试
- Android Hook神器——XPosed入门(登陆劫持演示)