java - myGridLayout = findViewById(R.id.myGridLayout);使我的应用崩溃

标签 java android crash

我已经看到一些答案表明我应该更改为这行代码

android.support.v7.widget.GridLayout

或者
androidx.gridlayout.widget.GridLayout

没有工作。
也导入为 v7 和 androidx 没有工作。
请帮忙。到目前为止它工作得很好:(
谢谢你!

MainActivity:


package com.example.braindtrainer;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    GridLayout myGridLayout;
    Button goButton;
    TextView timeTextView;
    TextView scoreTextView;
    TextView questionTextView;
    TextView notifyTextView;


    public void goClick(View view){

        Log.i("goButton","Pressed");
        timeTextView.setVisibility(View.VISIBLE);
        scoreTextView.setVisibility(View.VISIBLE);
        questionTextView.setVisibility(View.VISIBLE);
        notifyTextView.setVisibility(View.VISIBLE);
        goButton.setVisibility(View.INVISIBLE);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myGridLayout = findViewById(R.id.myGridLayout);
        goButton = findViewById(R.id.goButton);
        timeTextView = findViewById(R.id.timerTextView);
        scoreTextView = findViewById(R.id.scoreTextView);
        questionTextView = findViewById(R.id.questionTextView);
        notifyTextView = findViewById(R.id.notifyTextView);
    }
}

Layout


    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".MainActivity">

    <Button
        android:id="@+id/goButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#B388FF"
        android:onClick="goClick"
        android:text="GO!"
        android:textSize="70dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.gridlayout.widget.GridLayout
        android:id="@+id/myGridLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="300dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="300dp"
        android:visibility="invisible"
        app:columnCount="2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:rowCount="2">

        <TextView
            android:id="@+id/firstTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#991230C8"
            android:tag="1"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="0"
            app:layout_row="0" />

        <TextView
            android:id="@+id/secondTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#A9C62424"
            android:tag="2"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="1"
            app:layout_row="0" />

        <TextView
            android:id="@+id/thirdTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#9A60E841"
            android:tag="3"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="0"
            app:layout_row="1" />

        <TextView
            android:id="@+id/fourthTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#94CFBF30"
            android:tag="4"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="1"
            app:layout_row="1" />

    </androidx.gridlayout.widget.GridLayout>

    <TextView
        android:id="@+id/timerTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:background="#EA80FC"
        android:text="15 s"
        android:textColor="#000000"
        android:textSize="60sp"
        android:visibility="invisible"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/scoreTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:background="#FFAB40"
        android:text="0/0"
        android:textColor="#000000"
        android:textSize="60dp"
        android:visibility="invisible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/questionTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="29dp"
        android:layout_marginLeft="29dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="34dp"
        android:layout_marginRight="34dp"
        android:background="#3E3C1515"
        android:text="4 + 6"
        android:textColor="#000000"
        android:textSize="50dp"
        android:visibility="invisible"
        app:layout_constraintEnd_toStartOf="@+id/scoreTextView"
        app:layout_constraintStart_toEndOf="@+id/timerTextView"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/notifyTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="39dp"
        android:text="00000"
        android:textColor="#000000"
        android:textSize="50dp"
        android:visibility="invisible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/myGridLayout" />

</androidx.constraintlayout.widget.ConstraintLayout>

Log


2020-03-22 18:22:13.472 7929-7929/com.example.braindtrainer E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.braindtrainer, PID: 7929
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.braindtrainer/com.example.braindtrainer.MainActivity}: java.lang.ClassCastException: androidx.gridlayout.widget.GridLayout cannot be cast to android.widget.GridLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.ClassCastException: androidx.gridlayout.widget.GridLayout cannot be cast to android.widget.GridLayout
        at com.example.braindtrainer.MainActivity.onCreate(MainActivity.java:36)
        at android.app.Activity.performCreate(Activity.java:7009)
        at android.app.Activity.performCreate(Activity.java:7000)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

最佳答案

从崩溃日志中说有一个类转换异常。您使用了 GridLayout来自 androidx xml 中的库,而您试图将其转换为 GridLayout来自 android java 类中的库模块。因此你得到了这个异常(exception)。您需要对布局 xml 和 java 类使用相同的版本。

您需要在 Java 类中导入以下内容。

import androidx.gridlayout.widget.GridLayout

并删除以下
import android.widget.GridLayout;

关于java - myGridLayout = findViewById(R.id.myGridLayout);使我的应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60793258/

相关文章:

java - 使用 Java 在 ColdFusion 中计算 HMAC-SHA256 摘要

java - Webdriver - 使用java获取div值

android - 在 Android 设备中运行 IONIC 2 应用程序时出现问题

vb6 - VB6程序崩溃:第2部分。关于修复访问冲突的建议(0xC00000005)

java.util.Scanner 读取不同字符编码的文件

java - 为什么我们在 Spring Boot 中需要原型(prototype)范围

java - ClassNotFoundException:config_inputEventCompatProcessorOverrideClassName androidx,在 andoridx 上运行崩溃

android - 如果有多个数据库,firebase.getInstance() 会得到什么

ios - Xcode/iOS 设备调试

c++ - 模板程序不断崩溃