在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