Circular dependencies cannot exist in RelativeLayout错误解决

来源:互联网 发布:js切换视频播放 编辑:程序博客网 时间:2024/06/04 18:32

 

在android应用程序中保存一下错误:

  11-16 13:07:38.560: ERROR/AndroidRuntime(13277): java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1286)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:292)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:314)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1370)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1018)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:556)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.HorizontalScrollView.measureChildWithMargins(HorizontalScrollView.java:1159)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.HorizontalScrollView.onMeasure(HorizontalScrollView.java:303)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1370)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:661)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:554)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2115)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1069)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2447)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.os.Looper.loop(Looper.java:137)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.app.ActivityThread.main(ActivityThread.java:4439)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at java.lang.reflect.Method.invokeNative(Native Method)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at java.lang.reflect.Method.invoke(Method.java:511)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at dalvik.system.NativeStart.main(Native Method)
11-16 13:07:38.570: WARN/ActivityManager(302):   Force finishing activity com.XX.XX/.TaskPersonActivity
11-16 13:07:38.600: VERBOSE/AudioHardwareMSM8660(135): ACDB ID Device ID=speaker_stereo_rx

 

错误的意思大概为:在相对不居中,不能循环(相互)的依赖,我的布局文件是这样写的:

。。。。。。。。。。。。

 <LinearLayout
        android:id="@+id/LinearLayout_line"
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:layout_below="@id/tl_title"
        android:background="@color/gray" >
    </LinearLayout>
   

 <LinearLayout android:id="@+id/LinearLayout_person"
  android:layout_width="fill_parent" android:layout_height="fill_parent"
  android:layout_below="@id/LinearLayout_line" android:background="#FFFFFF">

  <ListView android:id="@+id/ListView_person"
   android:layout_width="fill_parent" android:layout_height="wrap_content"
   android:cacheColorHint="@null">
  </ListView>
 </LinearLayout>

 <LinearLayout android:id="@+id/LinearLayout_line"
  android:layout_width="fill_parent" android:layout_height="5dip"
  android:layout_below="@id/LinearLayout_person" android:background="@color/button_bg">
 </LinearLayout>

。。。。。。。。。。

仔细一看  布局文件中,存在了两个id为LinearLayout_line的view,android:id="@+id/LinearLayout_person"的View设置了layout_below="@id/LinearLayout_line",而最下边的android:id="@+id/LinearLayout_line" 设置了layout_below="@id/LinearLayout_person",显然这样的布局是不可能的,view1设置在view2的下边,view2,设置在view1的下边,如果类似于循环的依赖在布局文件中显然是不可能的。所以有了以上错误,只需要将下边的android:id="@+id/LinearLayout_line"设置为android:id="@+id/LinearLayout_line11" 就OK了。

0 0
原创粉丝点击