首次通过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功能
- 打开Android Studio设置(File → Settings)
- 导航到
Build, Execution, Deployment → Debugger → Apply Changes - 取消勾选Enable Apply Changes选项
- 重启Android Studio后重新运行应用
方案2:手动启动后附加调试器
- 先通过Android Studio安装应用(不要直接点击"Run")
- 在设备上手动启动应用
- 回到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
相关产品推荐
相关产品推荐

