首页 > 解决方案 > 每当我在 android studio 中运行应用程序时,我的应用程序就会一直停止

问题描述

我目前正在处理登录页面,现在我的应用程序正在停止。我的 kotlin 代码在这里。这是我的练习应用,它的基础语言是 kotlin。这里的 Xml 代码帮助我创建一个登录页面,这里的 kotlin 代码帮助我敬酒

package com.venkat.kotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast


class NewActivity : AppCompatActivity() , View.OnClickListener{

    override fun onClick(pO: View?) {
          Toast.makeText(this@NewActivity,"we clicked on button! ", Toast.LENGTH_LONG).show()
    }
    lateinit var etNumber : EditText
    lateinit var etPs : EditText
    lateinit var btnLogin : Button
    lateinit var txtForgetPassword : TextView
    lateinit var txtRegister : TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_new)

        title = "Log in"

        etNumber = findViewById(R.id.etNumber)
        etPs = findViewById(R.id.etPs)
        btnLogin = findViewById(R.id.txtForgetPassword)
        txtForgetPassword = findViewById(R.id.txtForgetPassword)
        txtRegister =  findViewById(R.id.txtRegister)

        btnLogin.setOnClickListener(this)
    }

}

在此之后是我的 xml 代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00D84A"
    tools:context=".NewActivity">

    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="240dp"
        android:layout_height="100dp"
        android:layout_marginRight="80dp"
        android:layout_marginLeft="80dp"
        android:layout_marginTop="20dp"
        android:src="@drawable/avengers_logo" />
    <EditText
        android:id="@+id/etNumber"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="20dp"
        android:padding="6dp"
        android:layout_below="@+id/imgLogo"
        android:inputType="phone"
        android:maxLength="10"
        android:maxLines="1"
        android:hint="@string/mobile_number"
        android:textColor="#000000"
        />
    <EditText
        android:id="@+id/etPs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="20dp"
        android:padding="6dp"
        android:layout_below="@+id/etNumber"
        android:inputType="textPassword"
        android:maxLength="10"
        android:maxLines="1"
        android:hint="@string/password"
        android:textColor="#000000" />
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="20dp"
        android:padding="6dp"
        android:layout_below="@+id/etPs"
        android:background="@color/purple_200"
        android:text="@string/login"
        android:textSize="18sp"
        android:textStyle="bold"
        />
    <TextView
        android:id="@+id/txtForgetPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="6dp"
        android:layout_marginTop="20dp"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/btnLogin"
        android:text="@string/forget_password"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txtRegister"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="31dp"
        android:padding="6dp"
        android:text="@string/register"
        android:textSize="16sp"
        android:layout_centerHorizontal="true"
        android:textColor="#000000" />
    </RelativeLayout>

在 android studio 中这里没有显示错误。在我的 android studio 中,其他应用程序正在运行。所以这段代码有问题。

标签: xmlandroid-studiokotlin

解决方案


您必须注意 ide 警告。

btnLogin = findViewById(R.id.txtForgetPassword)
txtForgetPassword = findViewById(R.id.txtForgetPassword)

ide 正在突出显示findViewById(R.id.txtForgetPassword)并发出警告 The id R.id.txtForgetPassword has already been looked up in this method; possible cut & paste error? (First usage here)

您正在尝试将 TextView 分配给 Button,因此不会发生强制转换并引发异常。只需更改如下:

btnLogin = findViewById(R.id.btnLogin)

推荐阅读