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

Android调用startActivity()启动Intent时应用崩溃问题排查

问题:点击MainActivity按钮启动Activity2时应用崩溃退出

我正在学习Android开发中的Intent用法,点击MainActivity内的按钮启动另一个Activity时,Demo应用总会崩溃退出。我的代码与网上教程几乎一致,修改过API版本仍未解决。

MainActivity代码:

package com.example.myapplication

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.activity.ComponentActivity

class MainActivity : ComponentActivity() {

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

        val btnNext = findViewById<Button>(R.id.btnNext)
        btnNext.setOnClickListener {
            val i = Intent(this, Activity2::class.java)
            startActivity(i)
        }
    }
}

Activity2代码:

package com.example.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class Activity2 : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_2)
    }
}

可能的原因及解决方法
  • 未在AndroidManifest.xml中注册Activity2
    Android系统要求所有Activity必须在清单文件中声明,这是最常见的崩溃原因。打开AndroidManifest.xml,在<application>标签内添加Activity2的注册代码:

    <activity
        android:name=".Activity2"
        android:exported="false" />
    

    注:若应用目标API为31(Android 12)及以上,exported属性为必填项。如果不需要外部应用启动此Activity,设为false即可;若需要则设为true。

  • 布局文件异常
    检查是否存在activity_2.xml布局文件,且文件内无XML语法错误。同时确认Activity2中setContentView(R.layout.activity_2)的布局ID拼写完全正确,避免因找不到布局导致崩溃。

  • 上下文(Context)引用问题
    虽然代码中this的使用看似正确,但Lambda表达式中偶尔会出现上下文失效的情况。可以尝试明确指定Activity上下文:

    val i = Intent(MainActivity@this, Activity2::class.java)
    
  • 按钮ID不匹配
    确认activity_main.xml中的按钮ID确实是btnNext,避免findViewById找不到控件引发空指针异常(这种情况在Logcat中会明确提示NullPointerException)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:52:09