George Brooks
George Brooks

Reputation: 199

Android: Circular dependencies cannot exist in RelativeLayout

A layout that used to work now does not. Its a relative layout with a horizontal scrollview, but when I created this activity I messed up the layout order completely and now it does not work. I cannot figure out why I get this error and my XML code is a complete mess and I do apologize for the chaos. If anyone could explain what the problem is and how I go about fixing it, I would appreciate it.

XML CODE:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_rear_gunner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.mr_br.ibcc_bomber_command.rear_gunner">


<HorizontalScrollView
    android:id="@+id/horizontalScrollView1"
    android:focusable="false"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:fillViewport="true"
>


    <ImageView
        android:id="@+id/scrollView"
        android:layout_width="wrap_content" android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/enemy2"

        android:layout_toRightOf="@+id/enemy2" android:scaleType="centerCrop"
        app:srcCompat="@drawable/nightsky3"/>
</HorizontalScrollView>
<RelativeLayout
    android:id="@+id/item_frame"
    android:layout_width="2000dp"
    android:layout_height="match_parent"
    android:focusable="true"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.mr_br.ibcc_bomber_command.rear_gunner"
    android:layout_alignParentTop="true" android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_alignParentEnd="true" android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" android:text="TextView"
        android:textSize="36sp"/>
    <TextView
        android:id="@+id/score"
        android:layout_width="220dp"
        android:layout_height="wrap_content" android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" android:layout_alignParentTop="true"
        android:layout_marginLeft="43dp" android:layout_marginStart="43dp"
        android:layout_marginTop="14dp" android:focusable="false" android:text="Score:"
        android:textColor="@android:color/background_dark"
        android:textColorLink="?attr/colorPrimaryDark"
        android:textSize="46sp"/>
    <TextView
        android:id="@+id/Health"
        android:layout_width="400dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/score" android:layout_alignBottom="@+id/score"
        android:layout_toEndOf="@+id/enemy2" android:layout_toRightOf="@+id/enemy2"
        android:text="TextView" android:textColor="@android:color/background_dark"
        android:textColorLink="?attr/colorPrimaryDark"
        android:textSize="46sp"/>
    <Button
        android:id="@+id/btnPilot"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:onClick="pilotBonus"
        android:text="Call Pilot Maneuver (Right)" android:layout_below="@+id/powerUps"
        android:layout_alignLeft="@+id/btnPilotL" android:layout_alignStart="@+id/btnPilotL"/>
    <Button
        android:id="@+id/btnPilotL"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="11dp"
        android:layout_marginStart="11dp" android:onClick="pilotBonus"
        android:text="Call Pilot Maneuver (Left)" android:layout_below="@+id/btnPilot"
        android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/>
    <TextView
        android:id="@+id/ammo"
        android:layout_width="350dp"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:text="Ammunition:"
        android:textColor="@android:color/background_dark"
        android:textColorLink="?attr/colorPrimaryDark"
        android:textSize="46sp"
        android:layout_marginRight="49dp" android:layout_marginEnd="49dp"
        android:layout_alignTop="@+id/powerUps" android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"/>
    <ImageView
        android:id="@+id/reinforce3"
        android:layout_width="150dp" android:layout_height="150dp"
        android:scaleX="-1" android:visibility="invisible"
        app:srcCompat="@drawable/bomber_neutral_info" android:layout_above="@+id/powerUps"
        android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/>
    <ImageView
        android:id="@+id/reinforce1"
        android:layout_width="150dp" android:layout_height="150dp"
        android:layout_marginTop="20dp" android:scaleX="-1"
        android:visibility="invisible" app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_below="@+id/score" android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"/>
    <ImageView
        android:id="@+id/reinforce2"
        android:layout_width="150dp" android:layout_height="150dp"
        android:scaleX="-1"
        android:visibility="invisible" app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_below="@+id/reinforce1" android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"/>
    <ImageView
        android:id="@+id/enemyblah"
        android:layout_width="150dp" android:layout_height="150dp"
        android:visibility="invisible" app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_marginTop="22dp" android:layout_alignTop="@+id/reinforce1"
        android:layout_toRightOf="@+id/reinforce1" android:layout_toEndOf="@+id/reinforce1"/>
    <ImageView
        android:id="@+id/enemy4"
        android:layout_width="150dp" android:layout_height="150dp"
        android:layout_marginTop="30dp"
        android:visibility="invisible" app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_below="@+id/enemy2" android:layout_toRightOf="@+id/enemy2"
        android:layout_toEndOf="@+id/enemy2" android:layout_marginLeft="26dp"
        android:layout_marginStart="26dp"/>
    <TextView
        android:id="@+id/powerUps"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:text="Support Calls Avaliable:"
        android:textColor="@android:color/background_dark" android:textColorLink="?attr/colorPrimaryDark"
        android:textSize="40sp"
        android:layout_marginTop="33dp" android:layout_below="@+id/enemy3"
        android:layout_alignLeft="@+id/btnPilot" android:layout_alignStart="@+id/btnPilot"/>
    <Button
        android:id="@+id/btnReinforce"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="opBonus" android:text="Operator Request Support"
        android:layout_marginTop="15dp" android:layout_below="@+id/ammo"
        android:layout_toRightOf="@+id/enemy2" android:layout_toEndOf="@+id/enemy2"/>
    <Button
        android:id="@+id/ammoR"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Ammo" android:text="Ammo Request Support"
        android:layout_alignBaseline="@+id/btnReinforce"
        android:layout_alignBottom="@+id/btnReinforce" android:layout_alignLeft="@+id/enemy2"
        android:layout_alignStart="@+id/enemy2" android:layout_marginLeft="17dp"
        android:layout_marginStart="17dp"/>
    <ImageView
        android:id="@+id/enemy5"
        android:layout_width="150dp" android:layout_height="150dp"
        android:visibility="invisible" app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_above="@+id/ammo" android:layout_alignRight="@+id/ammoR"
        android:layout_alignEnd="@+id/ammoR" android:layout_marginRight="19dp"
        android:layout_marginEnd="19dp"/>
    <ImageView
        android:id="@+id/enemy6"
        android:layout_width="150dp" android:layout_height="150dp"
        android:visibility="invisible" app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_alignTop="@+id/enemy2" android:layout_alignRight="@+id/btnReinforce"
        android:layout_alignEnd="@+id/btnReinforce" android:layout_marginRight="23dp"
        android:layout_marginEnd="23dp"/>
    <ImageView
        android:id="@+id/enemy3"
        android:layout_width="150dp" android:layout_height="150dp"
        android:layout_marginTop="21dp" android:visibility="invisible"
        app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_below="@+id/enemy2" android:layout_toLeftOf="@+id/enemy6"
        android:layout_toStartOf="@+id/enemy6"/>
    <ImageView
        android:id="@+id/enemy2"
        android:layout_width="300dp" android:layout_height="200dp"
        android:layout_marginLeft="13dp" android:layout_marginStart="13dp"
        android:visibility="invisible" app:srcCompat="@drawable/bomber_neutral_info"
        android:layout_alignTop="@+id/enemyblah" android:layout_toRightOf="@+id/btnReinforce"
        android:layout_toEndOf="@+id/btnReinforce"/>
    <TextView
        android:id="@+id/warning"
        android:layout_width="400dp"
        android:layout_height="wrap_content"
        android:text="TextView" android:textColor="@android:color/holo_red_dark"
        android:textColorLink="?attr/colorPrimaryDark"
        android:textSize="46sp" android:layout_above="@+id/reinforce3"
        android:layout_centerHorizontal="true" android:visibility="invisible"/>
</RelativeLayout>

Error:

enter image description here

Upvotes: 1

Views: 732

Answers (3)

HaroldSer
HaroldSer

Reputation: 2065

You have your outer relativelayout's imageview depending on enemy2(which is inside inner relativelayout). This is the problem

Upvotes: 2

George Brooks
George Brooks

Reputation: 199

I took your advice and began taking out the views 1 by one, the problem was with the enemy1 view. For some reason, I believe this was enemy2 but another activity had changed this when I automatically updated XML references, I changed the ID to something different and the layout works again. Thank you for the advice, I also have a better understanding to what exactly a Circular dependency error is.

Upvotes: 0

Glen Pierce
Glen Pierce

Reputation: 4831

I see one point of concern where it looks like btnPilot relies on the position of btnPilotL which relies on btnPilot. This is probably one of possibly multiple circular references.

Upvotes: 0

Related Questions