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

点击按钮启动新创建的Activity致应用崩溃,请求排查原因

问题排查:启动新Activity时应用崩溃

点击按钮启动secondscreen Activity时应用崩溃,同一应用内其他Activity可正常启动,仅该新创建的Activity无法启动。

相关代码

secondscreen.java

package org......android.activities;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import org......android.R;

public class secondscreen extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_secondscreen);
     
        TextView myAwesomeTextView = (TextView)findViewById(R.id.myAwesomeTextView);
        myAwesomeTextView.setText("brown fox");
    }
}

activity_secondscreen.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=".activities.secondscreen">

    <TextView
        android:id="@+id/myAwesomeTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="secondscreen activity"
        android:textSize="34sp"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"/>
</RelativeLayout>

启动代码(首个Activity中)

buttonTraining = findViewById(R.id.buttonTraining);
buttonTraining.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(getApplicationContext(),"going to second activity...",Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(getApplicationContext(),secondscreen.class);
        startActivity(intent);
    }
});

错误栈追踪

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

问题原因

secondscreen继承了AppCompatActivity,而AppCompatActivity要求必须使用Theme.AppCompat系列主题(或其子主题),但当前该Activity未配置符合要求的主题,导致崩溃。

解决方法

方法1:单独为该Activity指定AppCompat主题

打开AndroidManifest.xml,找到secondscreen对应的<activity>标签,添加android:theme属性:

<activity
    android:name=".activities.secondscreen"
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar" />

方法2:为整个应用设置全局AppCompat主题(推荐)

若应用内多数Activity都继承自AppCompatActivity,可在AndroidManifest.xml的<application>标签中设置全局主题:

<application
    ...
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar">

此设置会让所有Activity默认使用该主题,无需单独配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:45:48