渲染时引发异常:RelativeLayout中不能存在循环依赖。异常详细信息记录在窗口>显示视图>错误日志中。

3

突然间Eclipse开始出现了这个错误。

"Exception raised during rendering: Circular dependencies cannot exist in RelativeLayout Exception details are logged in Window > Show View > Error Log"

这是我的xml文件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relative_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
tools:context=".Generate" >


    <View
    android:id="@+id/view2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/generatetv1"
    android:layout_alignTop="@+id/generatetv1"
    android:layout_centerHorizontal="true"
    android:background="#90000000" />

<View
    android:id="@+id/view1"
    android:layout_width="wrap_content"
    android:layout_height="60dp"
    android:layout_alignBottom="@+id/generate_dukkan"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/generate_direnisci_adi"
    android:background="@drawable/extension" />

<Button
    android:id="@+id/generatebtn3"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="20dp"
    android:background="@drawable/button"
    android:text="Buradan Git" />

<Button
    android:id="@+id/generatebtn2"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_above="@+id/generatebtn1"
    android:layout_marginBottom="4dp"
    android:background="@drawable/button"
    android:text="Button2" />

<Button
    android:id="@+id/generatebtn1"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_above="@+id/generatebtn3"
    android:layout_marginBottom="16dp"
    android:background="@drawable/button"
    android:text="generate_dukkan" />

<TextView
    android:id="@+id/generate_time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignRight="@+id/generatetv1"
    android:text="DigitalClock"
    android:textColor="#FFFFFF"
    android:textSize="20dp" />

<TextView
    android:id="@+id/generatetv1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/generatebtn2"
    android:layout_below="@+id/generate_puan"
    android:textColor="#FFFFFF"
    android:layout_marginTop="80dp"
    android:text="@string/hello_world"
    android:textSize="20dp" />

<TextView
    android:id="@+id/generate_puantext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/generate_seviye"
    android:layout_alignBottom="@+id/generate_seviye"
    android:layout_alignLeft="@+id/generate_time"
    android:text="Puan "
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#FFFFFF" />

<TextView
    android:id="@+id/generate_puan"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/generate_seviye"
    android:layout_alignBottom="@+id/generate_seviye"
    android:layout_alignRight="@+id/generate_time"
    android:layout_toRightOf="@+id/generate_puantext"
    android:background="#242424"
    android:gravity="right"
    android:text="200"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#FFFFFF" />

<TextView
    android:id="@+id/generate_seviye"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/generatetv1"
    android:layout_alignRight="@+id/destekimg"
    android:layout_marginBottom="2dp"
    android:layout_toRightOf="@+id/generate_seviyetext"
    android:background="#242424"
    android:gravity="right"
    android:text="0"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#FFFFFF" />

<TextView
    android:id="@+id/generate_direnisci_adi"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/generate_seviye"
    android:layout_alignLeft="@+id/generate_seviye"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/generate_time"
    android:text="Direnisci Adi"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#FFFFFF" />

<ImageView
    android:id="@+id/maskeimg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/view1"
    android:layout_alignLeft="@+id/generate_seviye"
    android:layout_alignTop="@+id/eldivenimg"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:adjustViewBounds="true"
    android:background="@drawable/text_field"
    android:src="@android:drawable/spinner_background" />

<ImageView
    android:id="@+id/eldivenimg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/view1"
    android:layout_alignTop="@+id/generate_dukkan"
    android:layout_marginRight="5dp"
    android:layout_toRightOf="@+id/maskeimg"
    android:adjustViewBounds="true"
    android:background="@drawable/text_field"
    android:src="@android:drawable/spinner_background" />

<ImageView
    android:id="@+id/destekimg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/view1"
    android:layout_alignTop="@+id/eldivenimg"
    android:layout_toRightOf="@+id/eldivenimg"
    android:adjustViewBounds="true"
    android:background="@drawable/text_field"
    android:src="@android:drawable/spinner_background" />

<TextView
    android:id="@+id/generate_seviyetext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/view1"
    android:layout_below="@+id/generate_time"
    android:layout_marginTop="10dp"
    android:text="Sevİye "

    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#FFFFFF" />

<Button
    android:id="@+id/generate_dukkan"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="80dp"
    android:layout_height="30dp"
    android:layout_alignRight="@+id/generate_time"
    android:layout_below="@+id/generate_puan"
    android:background="@drawable/dukkan_img"
    android:layout_marginTop="5dp"
    android:scaleType="centerCrop" />

我该如何修复这个问题?

你需要发布错误的堆栈跟踪信息。您可以按照您在问题中发布的说明获取它:详细信息记录在窗口>显示视图>错误日志中。编辑您的问题并添加此信息。 - Luiggi Mendoza
1
只能说:“RelativeLayout 中不能存在循环依赖关系。” - anilbey
1个回答

18

问题是由于布局参数出现了循环引用导致的。

例如,当视图 B 在视图 A 的下方布局时,在其 below、alignRight 等属性中就不能再引用视图 A。这种情况也可能存在于多个视图之间:A 引用 B,B 又引用 C。在这种情况下,C 无法引用 A,因为存在循环依赖关系。

您需要重新评估这些引用。是否有给出代码行号?

编辑:

当我从 android:id="@+id/generate_seviye" 移除这 2 个字符时,它可以正常工作:

android:layout_above="@+id/generatetv1"
android:layout_alignRight="@+id/destekimg"

但您可能需要对布局进行一些修复并检查引用。

@+id/view2具有:

android:layout_alignBottom="@+id/generatetv1"
android:layout_alignTop="@+id/generatetv1"

这对我来说似乎不太对。

我知道应该尽可能少地使用布局,但是添加一个LinearLayout可能会使它变得更容易。


我重构了一个 ID,然后就发生了这种情况。 - anilbey
谢谢,删除那两个已经起作用了,但我仍然不明白为什么会发生这种情况。我只是重构了一个TextView的ID。 - anilbey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接