java 我的应用程序崩溃,无法启动注册活动

am46iovg  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(128)

我已经尝试了一切,当我运行的应用程序,它运行,但注册活动崩溃,并回到欢迎屏幕.告诉我什么是问题,是否我做错了什么或它的任何其他问题.这是注册活动代码im使用firebase

package com.example.chatzone;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class SignUp extends AppCompatActivity {

    TextInputEditText UserName;
    TextInputEditText Email;
    TextInputEditText Pass01;
    TextInputEditText conPass01;
    Button signUp;
    String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";

    FirebaseAuth mAuth;
    FirebaseUser mUser;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_up);
        UserName=findViewById(R.id.Username);
        Email=findViewById(R.id.Email);
        Pass01=findViewById(R.id.Password01);
        conPass01=findViewById(R.id.Password02);
        signUp=findViewById(R.id.Sign_Up02);
        mAuth=FirebaseAuth.getInstance();
        mUser=mAuth.getCurrentUser();

        signUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               creatUser();
            }

            private void creatUser() {
                Intent i = getIntent();
                String BD = i.getStringExtra(userInfo.t1);
                String FN = i.getStringExtra(userInfo.t2);
                String LN = i.getStringExtra(userInfo.t3);
                String PN = i.getStringExtra(userInfo.t4);
                String email=Email.getText().toString();
                String UN=UserName.getText().toString();
                String Pass=Pass01.getText().toString();
                String conPass=conPass01.getText().toString();
                if(!email.matches(emailPattern)){
                    Toast.makeText(SignUp.this,"Enter valid Email Address",Toast.LENGTH_SHORT).show();
                }else if(Pass == conPass)
                {
                    Toast.makeText(SignUp.this,"Password and Confirm Password does not match",Toast.LENGTH_SHORT).show();
                }else if(Pass.length()<6){
                    Toast.makeText(SignUp.this,"Password length should be Atleast 6 digit long",Toast.LENGTH_SHORT).show();
                }else if(TextUtils.isEmpty(email) || TextUtils.isEmpty(UN) || TextUtils.isEmpty(Pass) || TextUtils.isEmpty(conPass))
                {
                    Toast.makeText(SignUp.this,"Input Field can't be Empty",Toast.LENGTH_SHORT).show();
                }else
                {
                    mAuth.createUserWithEmailAndPassword(email,Pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if(task.isSuccessful())
                            {
                                Toast.makeText(SignUp.this,"Registration Successful",Toast.LENGTH_SHORT).show();
                                nextAct();
                            }
                            else{
                                Toast.makeText(SignUp.this,""+task.getException(),Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                }
                
            }

            private void nextAct() {
                Intent in = new Intent(SignUp.this,MainActivity.class);
                startActivity(in);
            }
        });
    }


}

这是错误

FATAL EXCEPTION: main
Process: com.example.chatzone, PID: 30802
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chatzone/com.example.chatzone.SignUp}: java.lang.ClassCastException: com.google.android.material.textfield.TextInputLayout cannot be cast to com.google.android.material.textfield.TextInputEditText
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3754)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3912)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:239)
    at android.app.ActivityThread.main(ActivityThread.java:8212)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)
Caused by: java.lang.ClassCastException: com.google.android.material.textfield.TextInputLayout cannot be cast to com.google.android.material.textfield.TextInputEditText
    at com.example.chatzone.SignUp.onCreate(SignUp.java:35)
    at android.app.Activity.performCreate(Activity.java:8119)
    at android.app.Activity.performCreate(Activity.java:8103)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1359)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3727)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3912) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:239) 
    at android.app.ActivityThread.main(ActivityThread.java:8212) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)  

logcat显示这种类型的错误请帮助我解决这个问题
XML代码:

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SignUp">

    <TextView
        android:id="@+id/step2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:fontFamily="@font/knewave01"
        android:text="Step 02: "
        android:textColor="#808080"
        android:textSize="50dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/Usertxt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/step2"
        android:layout_marginStart="15dp"
        android:layout_marginTop="10dp"
        android:fontFamily="@font/knewave01"
        android:text="User Info: "
        android:textColor="@color/CZColor"
        android:textSize="40sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/UserNameText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Usertxt"
        android:layout_marginStart="15dp"
        android:layout_marginTop="10dp"
        android:text="Username:"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:textStyle="bold"></TextView>

    <com.google.android.material.textfield.TextInputLayout
        android:layout_marginStart="15dp"
        android:layout_width="360dp"
        android:layout_height="wrap_content"
        android:id="@+id/Username"
        android:hint="Username"
        app:startIconDrawable="@drawable/user"
        app:endIconMode="clear_text"
        app:endIconTint="#808080"
        app:boxStrokeColor="@color/CZColor"
        android:layout_below="@id/UserNameText">
        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="@color/CZColor">
        </com.google.android.material.textfield.TextInputEditText>
    </com.google.android.material.textfield.TextInputLayout>

    <TextView
        android:id="@+id/EmailText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Username"
        android:layout_marginStart="15dp"
        android:layout_marginTop="10dp"
        android:text="Email:"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:textStyle="bold"></TextView>

    <com.google.android.material.textfield.TextInputLayout
        android:layout_marginStart="15dp"
        android:layout_width="360dp"
        android:layout_height="wrap_content"
        android:hint="Email"
        android:id="@+id/Email"
        app:startIconDrawable="@drawable/email"
        app:endIconMode="clear_text"
        app:endIconTint="#808080"
        app:boxStrokeColor="@color/CZColor"
        android:layout_below="@id/EmailText">
        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="@color/CZColor"
            android:inputType="textEmailAddress">
        </com.google.android.material.textfield.TextInputEditText>
    </com.google.android.material.textfield.TextInputLayout>

    <TextView
        android:id="@+id/PasswordText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Email"
        android:layout_marginStart="15dp"
        android:layout_marginTop="10dp"
        android:text="Password:"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:textStyle="bold"></TextView>

    <com.google.android.material.textfield.TextInputLayout
        android:layout_marginStart="15dp"
        android:layout_width="360dp"
        android:layout_height="wrap_content"
        android:hint="Password"
        android:id="@+id/Password01"
        app:startIconDrawable="@drawable/key"
        app:endIconMode="password_toggle"
        app:endIconTint="#808080"
        app:boxStrokeColor="@color/CZColor"
        android:layout_below="@id/PasswordText">
        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="@color/CZColor"
            android:inputType="textPassword">
        </com.google.android.material.textfield.TextInputEditText>
    </com.google.android.material.textfield.TextInputLayout>

    <TextView
        android:id="@+id/PasswordText01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Password01"
        android:layout_marginStart="15dp"
        android:layout_marginTop="10dp"
        android:text="Confirm Password:"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:textStyle="bold"></TextView>

    <com.google.android.material.textfield.TextInputLayout
        android:layout_marginStart="15dp"
        android:layout_width="360dp"
        android:layout_height="wrap_content"
        android:hint="Confirm Password"
        android:id="@+id/Password02"
        app:startIconDrawable="@drawable/key"
        app:endIconMode="clear_text"
        app:endIconTint="#808080"
        app:boxStrokeColor="@color/CZColor"
        android:layout_below="@id/PasswordText01">
        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="@color/CZColor">
        </com.google.android.material.textfield.TextInputEditText>
    </com.google.android.material.textfield.TextInputLayout>

    <Button
        android:id="@+id/Sign_Up02"
        android:layout_width="170dp"
        android:layout_height="60dp"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/Password02"
        android:layout_marginTop="15dp"
        android:text="SIGN UP"
        android:textSize="20dp"
        android:textStyle="bold" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Already have account ?"
        android:textSize="22dp"
        android:textColor="#808080"
        android:textStyle="bold"
        android:layout_marginStart="50dp"
        android:layout_marginTop="10dp"
        android:layout_below="@+id/Sign_Up02"
        ></TextView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign In"
        android:textSize="23dp"
        android:textColor="@color/CZColor"
        android:layout_marginStart="285dp"
        android:layout_marginTop="10dp"
        android:textStyle="bold"
        android:layout_below="@+id/Sign_Up02"
        ></TextView>

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="5dp"
        android:layout_marginTop="5dp"
        app:srcCompat="@drawable/back"
        android:background="@color/white"
        />
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar01"
        android:indeterminate="true"
        android:layout_centerInParent="true"
        android:visibility="gone"></ProgressBar>
</RelativeLayout>
k10s72fa

k10s72fa1#

您可以轻松检查此日志中的问题原因:

  • 原因:java.lang.ClassCastException:com.google.android.material.textfield.TextInputLayout无法转换为com.google.android.material.textfield.TextInputEditText*

您为变量Email声明了错误的视图。请尝试使用TextInputLayout声明它。
还有一件事,你不应该像“Email,Username,Pass01”那样声明变量名。这会导致你的项目更难维护。查找命名约定以了解更多信息

相关问题