如果你在 Android Studio 遇到錯誤訊息:
"The application should not provide its own launch screen"
這通常發生在 Flutter 開發環境,而且與 flutter_native_splash 套件或 AndroidManifest.xml 設定有關。以下是可能的原因及解決方案:
🚨 可能原因與解決方案
1. flutter_native_splash 設定錯誤
在 Flutter 開發中,預設的啟動畫面(Splash Screen)應該由 Android 系統的 theme 機制 來處理,而不是手動加載一個 Activity。如果你的 flutter_native_splash 設定不正確,可能會導致這個錯誤。
✅ 解決方案
檢查
pubspec.yaml的flutter_native_splash設定- 確保
android: true沒有被設為false - 檢查
background_image或color設定是否正確
- 確保
重新產生啟動畫面 在終端機執行:
刪除
android/app/src/main/res/drawable/launch_background.xml(如果存在)並重新生成 Splash Screen。
2. AndroidManifest.xml 設定不當
有些開發者會試圖在 AndroidManifest.xml 手動新增 一個 SplashActivity,這會導致系統無法自動加載正確的 launchTheme,進而出錯。
✅ 解決方案
打開
android/app/src/main/AndroidManifest.xml檢查
android:theme是否設為Theme.Splash,例如:確保 沒有額外的
SplashActivity,如果有,請刪除:
3. styles.xml 設定錯誤
Flutter 在 Android 上的啟動畫面是透過 styles.xml 定義的,請確保你的 styles.xml 沒有錯誤。
✅ 解決方案
打開
android/app/src/main/res/values/styles.xml檢查
LaunchTheme是否正確檢查
themes.xml是否有重複定義 如果themes.xml內有其他Theme,可能會造成衝突,請確保:Theme.AppCompat.Light.NoActionBar沒有影響LaunchTheme- 不要使用
Theme.MaterialComponents.DayNight作為啟動畫面主題
4. MainActivity.kt 設定錯誤
如果你手動修改了 MainActivity.kt,可能會導致 Flutter 的 Splash Screen 機制衝突。
✅ 解決方案
- 打開
android/app/src/main/kotlin/com/example/yourapp/MainActivity.kt - 檢查是否有
SplashActivity,如果有,刪除相關程式碼:MainActivity 應該是這樣:
🔥 總結
✅ 最佳解法
- 確保
flutter_native_splash設定正確,執行flutter pub run flutter_native_splash:create - 刪除
android/app/src/main/res/drawable/launch_background.xml - 確保
AndroidManifest.xml沒有額外的SplashActivity - 確保
styles.xml中LaunchTheme設定正確 - 確保
MainActivity.kt沒有多餘的 Splash 相關程式碼