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

首次通过Android Studio启动时MainActivity重复创建销毁问题

问题:首次从Android Studio启动应用时MainActivity重复创建销毁

现象

首次通过Android Studio运行新应用时,MainActivity会经历创建→销毁→再次创建的流程,该问题仅在首次启动时出现:

  • 后续从Android Studio启动应用时无此问题
  • 通过adb命令安装并启动应用时一切正常

日志截图

相关代码

MainActivity.kt

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

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d("App-Test", "Main Activity Created")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d("App-Test", "Main Activity Destroyed")
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragmentContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_name" />

</LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.DummyApp"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:theme="@style/Theme.DummyApp">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

已验证操作

  • 后续从Android Studio启动应用,无重复创建销毁问题
  • 使用以下adb命令安装启动应用,运行正常:
./gradlew assembleDebug
./gradlew installDebug

原因分析

这是Android Studio调试机制导致的正常现象:首次安装应用后,Studio会先启动应用进程,随后附加调试器,这个过程会触发系统重启Activity以完成调试连接。该行为仅影响首次调试启动,不会出现在用户正常安装启动应用的场景中。

解决方案

方案1:关闭Apply Changes功能

  1. 打开Android Studio设置(File → Settings)
  2. 导航到Build, Execution, Deployment → Debugger → Apply Changes
  3. 取消勾选Enable Apply Changes选项
  4. 重启Android Studio后重新运行应用

方案2:手动启动后附加调试器

  1. 先通过Android Studio安装应用(不要直接点击"Run")
  2. 在设备上手动启动应用
  3. 回到Android Studio,点击Attach Debugger to Android Process按钮,选择对应进程附加调试器

方案3:使用adb命令启动并附加调试器

通过adb启动应用后,再手动附加调试器:

adb shell am start -n com.your.package.name/.MainActivity

然后在Android Studio中点击Attach Debugger to Android Process选择进程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:57:43