Android 连接3,Tic Tac Toe,再次播放按钮崩溃

Android 连接3,Tic Tac Toe,再次播放按钮崩溃,android,Android,创建了一个“再次玩”按钮,用于清除所有包含十字和圆圈的网格,以便用户可以再次玩游戏。问题是由以下原因引起的:java.lang.ClassCastException:android.widget.RelativeLayout无法强制转换为androidx.gridlayout.widget.gridlayout 再次访问com.example.glow.MainActivity.play public void playAgain(View view) { gameIsActi

创建了一个“再次玩”按钮,用于清除所有包含十字和圆圈的网格,以便用户可以再次玩游戏。问题是由以下原因引起的:java.lang.ClassCastException:android.widget.RelativeLayout无法强制转换为androidx.gridlayout.widget.gridlayout 再次访问com.example.glow.MainActivity.play

    public void playAgain(View view) {

    gameIsActive = true;

    LinearLayout layout = (LinearLayout) findViewById(R.id.playAgainLayout);

    layout.setVisibility(View.INVISIBLE);

    activePlayer = 0;

    for (int i = 0; i < gameState.length; i++) {

        gameState[i] = 2;

    }

   GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout);


   for (int i = 0; i < gridLayout.getChildCount(); i++) {

        ((ImageView) gridLayout.getChildAt(i)).setImageResource(0);

    }
public void再次播放(视图){
gameIsActive=true;
LinearLayout布局=(LinearLayout)findViewById(R.id.playAgainLayout);
布局.设置可见性(视图.不可见);
activePlayer=0;
对于(inti=0;i
尝试了stackoverflow上提供的许多解决方案,但似乎都不起作用,同时请注意,我使用的是Android Studio 4.0.1

这是我的XML文件:

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/gridLayout"
    android:layout_width="415dp"
    android:layout_height="858dp"
    android:layout_marginStart="1dp"
    android:layout_marginTop="1dp"
    android:layout_marginEnd="1dp"
    android:layout_marginBottom="1dp"
    android:background="@drawable/grid"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.4"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <ImageView
        android:id="@+id/imageView15"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginStart="120dp"
        android:layout_marginTop="180dp"
        android:contentDescription="@string/img"
        android:onClick="dropIn"
        android:tag="0"
        app:layout_constraintBottom_toTopOf="@+id/imageView16"
        app:layout_constraintEnd_toStartOf="@+id/playAgainLayout"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/imageView22"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginTop="180dp"
        android:layout_marginBottom="55dp"
        android:contentDescription="@string/circle"
        android:onClick="dropIn"
        android:tag="1"
        app:layout_constraintBottom_toTopOf="@+id/imageView24"
        app:layout_constraintEnd_toStartOf="@+id/imageView21"
        app:layout_constraintStart_toEndOf="@+id/imageView15"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/imageView21"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginTop="180dp"
        android:contentDescription="@string/circle"
        android:onClick="dropIn"
        android:tag="2"
        app:layout_constraintBottom_toTopOf="@+id/imageView23"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView22"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/imageView16"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginStart="20dp"
        android:layout_marginTop="110dp"
        android:contentDescription="@string/circle"
        android:longClickable="true"
        android:onClick="dropIn"
        android:tag="3"
        app:layout_constraintBottom_toTopOf="@+id/imageView17"
        app:layout_constraintEnd_toStartOf="@+id/imageView24"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView15" />

    <ImageView
        android:id="@+id/imageView24"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginStart="10dp"
        android:layout_marginBottom="350dp"
        android:contentDescription="@string/circle"
        android:onClick="dropIn"
        android:tag="4"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/imageView23"
        app:layout_constraintStart_toEndOf="@+id/imageView16"
        app:layout_constraintTop_toBottomOf="@+id/imageView22" />

    <ImageView
        android:id="@+id/imageView23"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="330dp"
        android:contentDescription="@string/circle"
        android:onClick="dropIn"
        android:tag="5"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView24"
        app:layout_constraintTop_toBottomOf="@+id/imageView21" />

    <ImageView
        android:id="@+id/imageView17"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="5dp"
        android:layout_marginBottom="10dp"
        android:contentDescription="@string/circle"
        android:onClick="dropIn"
        android:tag="6"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/imageView26"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/playAgainLayout" />

    <ImageView
        android:id="@+id/imageView26"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginBottom="150dp"
        android:contentDescription="@string/circle"
        android:onClick="dropIn"
        android:tag="7"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/imageView25"
        app:layout_constraintStart_toEndOf="@+id/imageView17" />

    <ImageView
        android:id="@+id/imageView25"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="100dp"
        android:contentDescription="@string/circle"
        android:onClick="dropIn"
        android:tag="8"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView26"
        app:layout_constraintTop_toBottomOf="@+id/playAgainLayout" />

    <LinearLayout
        android:id="@+id/playAgainLayout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="34dp"
        android:layout_marginLeft="34dp"
        android:layout_marginTop="212dp"
        android:layout_marginEnd="34dp"
        android:layout_marginRight="34dp"
        android:layout_marginBottom="69dp"
        android:alpha="1"
        android:background="#76FF03"
        android:gravity="start|end"
        android:orientation="vertical"
        android:padding="30dp"
        android:visibility="invisible"
        app:layout_constraintBottom_toTopOf="@+id/imageView25"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <EditText
            android:id="@+id/winnerMessage"
            android:layout_width="wrap_content"
            android:layout_height="59dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="40dp"
            android:alpha="1"
            android:autofillHints=""
            android:clickable="false"
            android:contentDescription="@string/message"
            android:duplicateParentState="false"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:gravity="center"
            android:inputType="textPersonName"
            android:textSize="30sp" />

        <Button
            android:id="@+id/playAgain"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="playAgain"
            android:text="@string/button" />

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>


似乎您在这里找到了相对的视图id(R.id.gridLayout),请打开布局XML并检查它。

找到了解决方案人员,感谢您的回复,因为他们给了我一些关于研究内容的提示。问题在于XML代码中我没有使用gridlayout的地方,所以错误基本上告诉您您使用的布局是androidx布局,您正在将其分配给Android布局,以便rect it try:

androidx.gridlayout.widget.GridLayout var_name = (GridLayout) findViewById(R.id.gridLayout);

因此问题将得到解决

您确定您的
GridLayout
id为
GridLayout
吗?您可以在此处添加布局代码。您可以显示xml文件吗?
androidx.gridlayout.widget.GridLayout var_name = (GridLayout) findViewById(R.id.gridLayout);