这是我的LogCat错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jc.jcpremiere/com.jc.jcpremiere.activity2}: java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.os.Bundle instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/aboutview. Make sure other views do not use the same id.
每当我将手机从纵向切换到横向时,我都会得到这个。我有/layout
和/layout-land
的布局,只包含一个显示图像的视图,但在纵向上,它可以被捏合和缩放,并且在centerInside
上,在横向上它是{{1 }}
这是我的肖像布局
fitxy
对于我的风景
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rellayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.jc.jcpremiere.TouchImageView
android:id="@+id/aboutview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:adjustViewBounds="true"
android:background="@color/White"
android:scaleType="centerInside" />
</RelativeLayout>
答案 0 :(得分:1)
您的android:id="@+id/aboutview"
和com.jc.jcpremiere.TouchImageView
课程都有ImageView
。
android:id
必须是唯一的,因此没有两个组件可以拥有相同的Android ID。只需将一个Android ID更改为其他内容即可解决问题。
此外,纵向和横向模式都有TouchImageView
或ImageView
- 每种模式都没有不同类型的View组件。
答案 1 :(得分:1)
您的imageview的类型正在从potrait变为横向模式。 Potrait使用 ImageView ,而横向使用 TouchImageView 。所以你的findViewById()方法引用了横向模式中的错误视图对象。尝试在你的java类中将imageView的对象更改为TouchImageView然后我猜你的potrait模式会崩溃。