歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo異常總結

做Android開發的可能都碰到"java.lang.RuntimeException: Unable to instantiate activity ComponentInfo"過這個異常,出現這個異常的原因有很多,就根據我個人而言給出以下幾種解決辦法,以後再碰到了再更新:

1.最常見的原因是新建了一個activity,完成代碼編寫之後忘記了在Manifest.xml中配置注冊該activity就會出現上面的異常。還有就是修改了activity的類名或者報名而沒有在Manifest.xml文件中做相應的修改。

2.在注冊activity時,省略報名直接用“.XxxActivity”來代替activity的全路徑。比如下面的代碼中默認的包名是"com.location.activity"(程序第3行),在注冊activity的時候,若果activity確實是在該包下,則可以使用".XxxActivity"來代替(注意activity類名前的點是不可以省略的!),當然也可以使用全路徑如下面代碼第11行所示。但如果所新建的activity不在默認的包下,此時省略包名直接用".XxxActivity"來代替就會出現“java.lang.RuntimeException: Unable to instantiate activity ComponentInfo...”異常,這時必須用全路徑來表示,格式如下面代碼第11行所示,即包名+activity的名,如“xxx.xxx.xxx.XxxActivity”。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.location.activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name="com.location.activity.LocationActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

3.如果你更新了ADT的新版本,而工程文件中使用了其他的jar包,也可能會出現"java.lang.RuntimeException: Unable to instantiate activity ComponentInfo"這樣的異常,處理辦法:Project -> Properties ->java build path-> Order & Export 選上Private 然後clean 項目。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved