最近、ADTをバージョン22にアップグレードしました。アップグレード後、最初にサポートライブラリ(別のライブラリプロジェクトに依存していた)でエラーが発生しました。サポートライブラリをプロジェクトにコピーしてすべてのプロジェクトをクリーンアップした後、アプリケーションを起動しようとすると、次のエラーが発生し続けます。
Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.d.d/com.d.d.MainActivity}: Java.lang.ClassNotFoundException: com.d.d.MainActivity
(実際のパッケージ名をcom.d.dに変更しました)
しかし、それがサポートライブラリの変更の原因であることを疑っているのは、次の行です。
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:61)
以前にサポートライブラリをいじったことがあるとき、dex何かに関連する多くのエラーを受け取ったので、それは私を疑い続けます。
言うまでもなく、AndroidManifestにはアクティビティの正しいパスが含まれています。
ここでどんな助けでも大歓迎です。どうもありがとう。
this の複製である可能性があります。
Project-> Properties-> Java Build Path-> Order&Export)に移動して、Android Private Librariesがプロジェクトおよび使用中の他のすべてのライブラリプロジェクトでチェックされます。すべてのプロジェクトを後でクリーンアップして、何が起こるのですか。
@Krauxeこの回答を提供していただきありがとうございます!
ただし、私はEclipseで少し調整されたアプローチを使用する必要がありました(バージョン:3.7.2)。
ここでは、ソースフォルダーとしてsrcフォルダーを追加する必要がありました。なんらかの理由でバインディングが消えました。
すべての回答を試しても問題が解決しない場合は、おそらくアクティビティ名がAndroidManifest.xmlのパッケージ名と一致していません。たとえば、このようなxml。
<activity
Android:name="com.tony.HomeActivity"
Android:screenOrientation="portrait" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
homeActivityは実際にはパッケージcom.tony.ui.HomeActivityにあります。
私も同じ問題を抱えていました。解決策は、出力フォルダーをbin/classesに変更することでした。
挨拶、マーティン