首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Activity 未在 Manifest 註冊導致崩潰:完整排查指南

     編輯:程式設計綜合問答

崩潰現象

Eclipse 無紅錯,真機點擊按鈕 startActivity(new Intent(MainActivity.this, Second.class)) 彈出「應用程序意外停止」。

根因

Second Activity 未在 AndroidManifest.xml 中聲明,系統找不到組件拋 ActivityNotFoundException。

修正 Manifest

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

        <!-- 缺失的聲明 -->
        <activity android:name=".Second" />
        <!-- 或完整包名 android:name="com.example.ex04_01.Second" -->
    </application>
</manifest>

驗證步驟

  1. 重新安裝 APK:adb install -r app.apk。
  2. Logcat 過濾 ActivityManager:adb logcat ActivityManager:I *:S,確認 START u0 {cmp=.../.Second} 無錯誤。
  3. 檢查包名一致性:package="com.example.ex04_01" 與 Java 包名完全一致。

其他常見導致「意外停止」的原因

原因Logcat 關鍵字解決
空指針NullPointerException檢查 findViewById 返回值
數組越界ArrayIndexOutOfBoundsException邊界判斷
權限缺失SecurityExceptionManifest 加 uses-permission
主線程網絡NetworkOnMainThreadException用 AsyncTask/OkHttp/RxJava

最佳實踐

  • 新建 Activity 時勾選「Create in Manifest」或手動添加。
  • 使用 Android Studio 自動生成模板,避免手寫錯誤。
  • 單元測試覆蓋 startActivity 路徑,模擬 ActivityNotFoundException。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved