每当我单击显示错误java.lang.IllegalStateException:无法为android执行方法时,应用程序就会崩溃:onClick

每当我单击显示错误java.lang.IllegalStateException:无法为android执行方法时,应用程序就会崩溃:onClick,android,android-studio,Android,Android Studio,该应用程序正在打开,工作正常,直到我点击它基本上是一个Connect-3游戏,点击它崩溃 我的日志是 12-13 14:22:32.393 2482-2482/com.govinddixit.connect3 E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException:无法为android执行方法:onClick 在android.support.v7.app.AppCompatViewInflater

该应用程序正在打开,工作正常,直到我点击它基本上是一个Connect-3游戏,点击它崩溃

我的日志是

    12-13 14:22:32.393 2482-2482/com.govinddixit.connect3 E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException:无法为android执行方法:onClick 在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 在android.view.view.performClick上(view.java:4204) 在android.view.view$PerformClick.run(view.java:17355) 位于android.os.Handler.handleCallback(Handler.java:725) 位于android.os.Handler.dispatchMessage(Handler.java:92) 位于android.os.Looper.loop(Looper.java:137) 位于android.app.ActivityThread.main(ActivityThread.java:5041) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 在dalvik.system.NativeStart.main(本机方法) 原因:java.lang.reflect.InvocationTargetException 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在android.view.view.performClick上(view.java:4204) 在android.view.view$PerformClick.run(view.java:17355) 位于android.os.Handler.handleCallback(Handler.java:725) 位于android.os.Handler.dispatchMessage(Handler.java:92) 位于android.os.Looper.loop(Looper.java:137) 位于android.app.ActivityThread.main(ActivityThread.java:5041) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 在dalvik.system.NativeStart.main(本机方法) 原因:java.lang.ArrayIndexOutOfBoundsException:长度=8;指数=8 位于com.govinddixit.connect3.MainActivity.dropIn(MainActivity.java:44) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在android.view.view.performClick上(view.java:4204) 在android.view.view$PerformClick.run(view.java:17355) 位于android.os.Handler.handleCallback(Handler.java:725) 位于android.os.Handler.dispatchMessage(Handler.java:92) 位于android.os.Looper.loop(Looper.java:137) 位于android.app.ActivityThread.main(ActivityThread.java:5041) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:5
package com.govinddixit.connect3;

import android.media.Image;
import android.view.MenuItem;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.GridLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.security.KeyStore;

public class MainActivity extends AppCompatActivity
{
    //0=yellow,1=red
    int activePlayer = 0;
    boolean gameisActive = true;
    //2 means unplayed
    int[] gameState = {2,2,2,2,2,2,2,2};
    int[][] winningPosition = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};

    public void dropIn(View view) {
        ImageView counter = (ImageView) view;

        int tappedCounter = Integer.parseInt(counter.getTag().toString());

        if (gameState[tappedCounter] == 2 && gameisActive) {
            gameState[tappedCounter] = activePlayer;

            counter.setTranslationY(-1000f);

            if (activePlayer == 0) {
                counter.setImageResource(R.drawable.yellow);
                activePlayer = 1;
            } else {
                counter.setImageResource(R.drawable.red);
                activePlayer = 0;
            }
            counter.animate().translationYBy(1000f).rotation(36).setDuration(300);

            for (int[] winningPosition : winningPosition) {
                if (gameState[winningPosition[0]] == gameState[winningPosition[1]] &&
                        gameState[winningPosition[1]] == gameState[winningPosition[2]] &&
                        gameState[winningPosition[0]] != 2) {
                    //someone has won//
                    gameisActive = false;

                    String winner = "RED";

                    if (gameState[winningPosition[0]] == 0) {
                        winner = "YELLOW";


                        TextView winnerMessage = (TextView) findViewById(R.id.winnerMessage);
                        winnerMessage.setText("has won");

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

                        layout.setVisibility(view.VISIBLE);

                    } else {
                        boolean gameIsOver = true;

                        for (int counterState : gameState) {

                            if (counterState == 2) {
                                gameIsOver = false;
                            }
                        }
                        if (gameIsOver) {
                            TextView winnerMessage = (TextView) findViewById(R.id.winnerMessage);
                            winnerMessage.setText("It's a draw");

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

                            layout.setVisibility(view.VISIBLE);

                        }
                    }
                }
            }
        }
    }

    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);
            }
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.govinddixit.connect3.MainActivity">

    <LinearLayout
        android:id="@+id/playAgainLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:alpha="1"
        android:background="?android:attr/colorActivatedHighlight"
        android:orientation="vertical"
        android:paddingHorizontal="30dp"
        android:paddingVertical="30dp"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/winnerMessage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView"
            android:textSize="30sp" />

        <Button
            android:id="@+id/playAgainButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="playAgain"
            android:text="PLAY AGAIN" />
    </LinearLayout>

    <GridLayout
        android:id="@+id/gridLayout"
        android:layout_width="360dp"
        android:layout_height="360dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:background="@drawable/board"
        android:columnCount="3"
        android:rowCount="3"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.496">

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="2"
            android:layout_marginLeft="35dp"
            android:layout_marginTop="35dp"
            android:layout_row="2"
            android:onClick="dropIn"
            android:tag="0" />

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="0"
            android:layout_margin="10dp"
            android:layout_row="0"
            android:onClick="dropIn"
            android:tag="0" />

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="0"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="25dp"
            android:layout_row="1"
            android:onClick="dropIn"
            android:tag="0" />

        <ImageView
            android:id="@+id/imageView6"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="0"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="35dp"
            android:layout_row="2"
            android:onClick="dropIn"
            android:tag="0"
            tools:layout_editor_absoluteX="0dp"
            tools:layout_editor_absoluteY="149dp" />

        <ImageView
            android:id="@+id/imageView7"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="1"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="10dp"
            android:layout_row="0"
            android:onClick="dropIn"
            android:tag="0" />

        <ImageView
            android:id="@+id/imageView8"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="2"
            android:layout_marginLeft="35dp"
            android:layout_marginTop="10dp"
            android:layout_row="0"
            android:onClick="dropIn"
            android:tag="0" />

        <ImageView
            android:id="@+id/imageView10"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="2"
            android:layout_marginLeft="35dp"
            android:layout_marginTop="25dp"
            android:layout_row="1"
            android:onClick="dropIn"
            android:tag="0" />

        <ImageView
            android:id="@+id/imageView11"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="1"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="35dp"
            android:layout_row="2"
            android:onClick="dropIn"
            android:tag="0" />

        <ImageView
            android:id="@+id/imageView12"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_column="1"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="25dp"
            android:layout_row="1"
            android:onClick="dropIn"
            android:tag="0" />
    </GridLayout>

 </android.support.constraint.ConstraintLayout>
for (int[] winningPosition : winningPosition) {
            if (gameState[winningPosition[0]] == gameState[winningPosition[1]] &&
                    gameState[winningPosition[1]] == gameState[winningPosition[2]] &&
                    gameState[winningPosition[0]] != 2) {
int[][] winningPosition = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
int[] gameState = {2,2,2,2,2,2,2,2};