Circular dependencies cannot exist in RelativeLayout錯誤解決

來源:互聯網
上載者:User

在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了。

=====================================以上是針對我的錯誤情況進行說明,當然下邊這個連結中的文章更簡潔。

http://serryzhao.iteye.com/blog/833324

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.