Android 布局类转换异常问题

问题如下:
android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
,代码:
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(40, 40);
params.setMargins(10, 10, 10, 0);
linearLayout.addView(image_view, params);
我加载的的确是FrameLayou,为什么还是说我拿Linearlayout转

顺便补充下布局文件:
android:layout_width="match_parent"
android:layout_height="wrap_content">

                <android.support.v4.view.ViewPager
                    android:id="@+id/view_pager"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

                <LinearLayout
                    android:id="@+id/round_dot"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal|bottom"
                    android:orientation="horizontal"
                    android:paddingBottom="@dimen/dp_10" />

            </FrameLayout>

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(40, 40);
params.setMargins(10, 10, 10, 0);
linearLayout.addView(image_view, params);

linearLayout看你的命名应该是一个LinearLayout
linearLayout.addView(image_view, params);这这句话里面的params参数你传进去的是FrameLayout.LayoutParams,所以报错了
应该传LinearLayout.LayoutParams类型的

从代码上看,你想给你的LinearLayout(id="round_dot"添加一个子image_view;
addview(view,layoutparams)中layoutparams是给image_view的;
view= imageview 它的父view是linearlayout 而非 framelayout;

如果我把Linearlayout的父布局改成LinearLayout,再用LinearLayout去添加布局就没问题

android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
原因是:
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(40, 40); //你声明的params是一个FrameLayout.LayoutParams类型的对象
params.setMargins(10, 10, 10, 0);
linearLayout.addView(image_view, params); //而此处却将params用于其他类型的对象 故报错 java和C一样对类型有严格的要求