You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android闪屏后跳转登录页应用崩溃问题求助

闪屏跳转登录页崩溃的排查与解决

常见崩溃原因及解决步骤

  • 未注册目标Activity:检查AndroidManifest.xml,确保SignUpActivity已在<application>标签内注册,示例:
    <activity android:name=".SignUp" />
    
  • 缺失布局引用资源:布局中用到的@drawable/splashbackground、@drawable/edittextback、@drawable/baseline_person_24、@drawable/baseline_lock_24必须存在于res/drawable目录下,且格式合法(比如矢量图需确保最低API兼容,图片文件未损坏)。
  • Material组件依赖缺失:项目未引入Material Design库会导致TextInputLayout等组件无法加载,在app/build.gradle的dependencies中添加:
    implementation 'com.google.android.material:material:1.11.0' // 可根据项目API选择对应版本
    
  • Handler内存泄漏风险优化:原代码中直接使用Handler()可能导致内存泄漏,建议结合生命周期改进:
    class MainActivity : AppCompatActivity() {
        private val handler = Handler(Looper.getMainLooper())
        private val runnable = Runnable {
            startActivity(Intent(this, SignUp::class.java))
            finish()
        }
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            handler.postDelayed(runnable, 3000)
        }
    
        override fun onDestroy() {
            super.onDestroy()
            handler.removeCallbacks(runnable) // 页面销毁时移除延迟任务
        }
    }
    

用户提供的代码

注册页面XML(建议命名为activity_sign_up.xml)

<?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=".SignUp"
    android:background="@drawable/splashbackground">

    <TextView
        android:id="@+id/headingTV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:text=" Sign In "
        android:textSize="40dp"
        android:padding="5dp"
        android:layout_marginTop="80dp"
        android:textColor="@color/white"
        android:fontFamily="serif"
        android:background="#469BABC6"
        />

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/editText"
        android:layout_width="390dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="@id/headingTV"
        app:layout_constraintEnd_toEndOf="@id/headingTV"
        app:layout_constraintTop_toBottomOf="@id/headingTV"
        android:layout_marginTop="60dp"
        >

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/username"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:background="@drawable/edittextback"
            android:hint="Username"
            android:textSize="27dp"
            android:layout_marginStart="25dp"
            android:layout_marginEnd="25dp"
            android:paddingStart="10dp"
            android:padding="5dp"
            android:fontFamily="serif"
            android:drawableStart="@drawable/baseline_person_24"
            android:textColorHint="@color/black"
            />
    </com.google.android.material.textfield.TextInputLayout>

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/editText1"
        android:layout_width="390dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="@id/editText"
        app:layout_constraintEnd_toEndOf="@id/editText"
        app:layout_constraintTop_toBottomOf="@id/editText"
        android:layout_marginTop="10dp"
        app:passwordToggleEnabled="true"
        >

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:background="@drawable/edittextback"
            android:hint="Password"
            android:textSize="27dp"
            android:layout_marginStart="25dp"
            android:layout_marginEnd="25dp"
            android:paddingStart="10dp"
            android:padding="5dp"
            android:fontFamily="serif"
            android:drawableStart="@drawable/baseline_lock_24"
            android:textColorHint="@color/black"
            />
    </com.google.android.material.textfield.TextInputLayout>

    <Button
        android:id="@+id/sign"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/editText1"
        app:layout_constraintEnd_toEndOf="@id/editText1"
        app:layout_constraintStart_toStartOf="@id/editText1"
        android:layout_marginTop="60dp"
        android:text="Sign In"
        android:textColor="@color/black"
        android:textSize="25dp"
        android:fontFamily="serif"
        android:elevation="150dp"
        android:paddingStart="10dp"
        android:paddingEnd="10dp"
        android:background="@drawable/edittextback"
        android:backgroundTint="?attr/selectableItemBackground"
        />

    <TextView
        android:id="@+id/signup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign Up"
        app:layout_constraintStart_toStartOf="@id/sign"
        app:layout_constraintEnd_toEndOf="@id/sign"
        app:layout_constraintTop_toBottomOf="@id/sign"
        android:textColor="@color/white"
        android:textStyle="bold"
        android:layout_marginTop="15dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>

闪屏页MainActivity.kt

package com.example.disneyloginpage

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Handler().postDelayed({
            var intent=Intent(this,SignUp::class.java)
            startActivity(intent)
            finish()
        },3000)
    }
}

内容的提问来源于stack exchange,提问作者user18253054

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:18:09