Android調試筆記——FATAL EXCEPTION: main...have you declared this activity in your AndroidManifest.xml?

最近在寫Android的時候遇到個問題,某一Activity明明在AndroidManifest裏註冊過,運行時卻仍無法進入該活動。

報錯如下:

09-04 00:00:18.472: E/AndroidRuntime(1052): FATAL EXCEPTION: main
09-04 00:00:18.472: E/AndroidRuntime(1052): Process: com.example.compusforest, PID: 1052
09-04 00:00:18.472: E/AndroidRuntime(1052): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.compusforest/com.example.guide.GuideActivity}; have you declared this activity in your AndroidManifest.xml?
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.app.Activity.startActivityForResult(Activity.java:3745)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.app.Activity.startActivityForResult(Activity.java:3706)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.app.Activity.startActivity(Activity.java:4016)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.app.Activity.startActivity(Activity.java:3984)
09-04 00:00:18.472: E/AndroidRuntime(1052): at com.example.compusforest.MainActivity.onClick(MainActivity.java:112)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.view.View.performClick(View.java:4780)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.view.View$PerformClick.run(View.java:19866)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.os.Handler.handleCallback(Handler.java:739)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.os.Handler.dispatchMessage(Handler.java:95)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.os.Looper.loop(Looper.java:135)
09-04 00:00:18.472: E/AndroidRuntime(1052): at android.app.ActivityThread.main(ActivityThread.java:5257)
09-04 00:00:18.472: E/AndroidRuntime(1052): at java.lang.reflect.Method.invoke(Native Method)
09-04 00:00:18.472: E/AndroidRuntime(1052): at java.lang.reflect.Method.invoke(Method.java:372)
09-04 00:00:18.472: E/AndroidRuntime(1052): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-04 00:00:18.472: E/AndroidRuntime(1052): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)


報錯說 have you declared this activity in your AndroidManifest.xml?  

但我在AndroidManifest裏寫了註冊活動,如下:


那麼報錯提示沒有註冊是怎麼回事呢?我試了一下按住“ctrl+左鍵”點擊註冊的Activity的name名字,出現下劃線超鏈接,點擊卻無法進入該活動的.java代碼中。所以說明註冊的確存在問題。看左邊有多個package,活動的.java代碼就各自放在不同的package下,所以在活動註冊單寫<activity android:name=".GuideActivity"></activity>是不行的。

要說清楚包名,即寫作<activity android:name="com.example.guide.GuideActivity"></activity>因爲省略包名則默認在AndroidManifest裏規定的包內,如果活動不在此包中,按“ctrl+左鍵“也就無法跳轉到相應活動的.java代碼中,即未註冊成功。


這要寫清楚包名來註冊就可以成功了,試一下”ctrl+左鍵“點擊那些藍色的Activity的name可以跳轉,運行一下也成功啦,沒問題啦~

發佈了40 篇原創文章 · 獲贊 41 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章