2011-09-18 87 views
3

我正在開發Froyo作爲最低版本和薑餅作爲目標版本的應用程序。因此,清單顯示:無法實例化活動ComponentInfo

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10"/> 

我有一個模擬器和Nexus One的薑餅,和應用程序部署和正確安裝。 但是,當它啓動時,它崩潰,並在日誌中拋出的錯誤是:

09-18 06:35:11.240: ERROR/AndroidRuntime(382): FATAL EXCEPTION: main 
09-18 06:35:11.240: ERROR/AndroidRuntime(382): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.my.package/com.my.package.Dashboard}: java.lang.ClassNotFoundException: com.my.package.Dashboard in loader dalvik.system.PathClassLoader[/data/app/com.my.package-2.apk] 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.os.Handler.dispatchMessage(Handler.java:99) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.os.Looper.loop(Looper.java:130) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at java.lang.reflect.Method.invoke(Method.java:507) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at dalvik.system.NativeStart.main(Native Method) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382): Caused by: java.lang.ClassNotFoundException: com.my.package.Dashboard in loader dalvik.system.PathClassLoader[/data/app/com.my.package-2.apk] 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 
09-18 06:35:11.240: ERROR/AndroidRuntime(382):  ... 11 more 

是的,活動「儀表板」,在清單中聲明:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.my.package" 
     android:versionCode="1" 
     android:versionName="1.0" 
     android:installLocation="auto"> 

     <activity android:name=".Dashboard" 
       android:label="@string/app_name" 
       android:screenOrientation="portrait"> 

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

     ... 

所以,可這有什麼問題有關?這讓我瘋狂。

+0

這兩行有意義com.my.package和/data/app/com.my.package-2.apk? – user370305

+0

我不知道你的意思。 – frapontillo

+0

只需檢查您的ddms文件資源管理器在data/app/<包名稱>中與您在類構建中使用的相同。 – user370305

回答

0

事實證明,項目文件丟失了apk文件所需的一些構建器,無法正確製作。這就是爲什麼它無法找到Dashboard類。

解決方案是創建一個空的Android項目,並將自動生成的.project和.properties文件與破損項目中的項目進行比較。

2

對我來說,就像在電話的升級過程中(從1.4到1.8.1)一樣。 我不得不更新根項目上的.project文件。 我創建一個新項目並將新文件與前者進行比較。

8

我在Eclipse 4.2下開發了這個問題。我的主要活動被AndroidManifest.xml文件引用,包含正確的軟件包和名稱,但仍然無法加載。經過一些調試和評論後,我發現我的主要活動實施的界面是問題的根源。此接口在單獨的項目中定義,但我未能在Java構建路徑中引用該項目。所以,當我建立東西時,他們會正確地構建,但是當我啓動時,我立即遇到了一個關閉的力量,與此問題相同的錯誤。

爲了解決這個問題,我右鍵點擊了Android項目,選擇Java構建路徑,加入我的「公共代碼」項目的項目選項卡,然後選中該複選框爲同一個項目上訂單並導出選項卡。之後,一切都奏效了。

+0

這對我不起作用... –

3

我的解決方案是在項目 - >屬性 - > Java構建路徑 - >訂單和導出,你應該勾選你使用的條目。但我也經歷如果你勾選Android.jar,它說「轉換爲Dalvik格式失敗,錯誤1」

還刪除除Android.xx之外的所有庫,然後通過項目 - >清理和清理項目然後添加您的庫(不要忘記按順序打勾並導出)可能會解決「轉換爲Dalvik格式失敗,錯誤1」的事情。

還有一個你需要檢查的地方是Properties - > Java Compiler - > JDK Compliance。

+0

刪除項目 - >屬性 - > Java Build Path中的所有庫 - > Android.X.X之外的庫爲我工作。 – Gene

2

您可以通過在清單文件

4

我已經解決了這個問題,糾正你的活動類的名稱很容易恢復項目屬性修正這個錯誤:

  • 您的項目右擊
  • 的Android工具
  • 修復項目屬性

然後你依賴關係將被恢復爲新的,一切都會好的!

2

我通過檢查訂單和出口下,Android的私人圖書館和Android依賴於Java構建路徑

0

我有同樣的問題,但我擁有了一切正確定義解決我的問題。我從SVN中拿了同一個項目的另一個副本,在第二個項目中出現這個錯誤。 重新啓動Eclipse:這將刷新eclipse的內存。它對我很有用

2

爲了記錄,另一個可能會導致這種情況的簡單原因,在開始項目時可能會被忽略,因爲您希望啓動的活動可能沒有擴展的Activity或者是空的類等等。

+0

謝謝你提到這個。已經自己想清楚了,但是......花了時間。討論很好。 – akauppi

0

最後,我解決了兩個android-support-v4.jar一樣的問題。只需複製任何與您的項目相關的任何項目的android-support-v4.jar並將其替換即可。

使用添加以下內容到Android清單

<uses-library android:name="com.google.android.maps" /> 
0

我發現this post有類似的問題和很多不同的可能的解決方案。但是,在我的情況下,問題出在我的Android項目設置中。不知何故,我的項目的Java構建路徑沒有鏈接到源文件夾。這就是爲什麼我的清單文件無法找到活動類。我通過鏈接src文件夾解決了這個問題。爲此,請右鍵單擊項目「屬性」 - >「Java Build Path」。然後選擇標籤「來源」。檢查你的src文件夾是否在這裏列出。如果沒有,點擊「添加文件夾...」,然後導航到項目的src文件夾。

0

今天我有同樣的問題,這是與主類命名問題。這是空閒活動,只要我通過設置IdleDnaActivity改變它,應用程序啓動成功。

相關問題