モノワスレ

ブログに書いて忘れましょう

Android SDK Rev.17 にしたら ClassNotFoundException

条件

以下を利用している

  • android-support-v4.jar
  • FragmentActivity
出力された内容

少し省略しますが…

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.exapmle/com.exapmle.MainActivity}: java.lang.ClassNotFoundException: com.exapmle.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.exapmle.android-1.apk]

Caused by: java.lang.ClassNotFoundException: com.exapmle.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.exapmle.android-1.apk]
検証

特にソースは変えていなかったので、以下を念のため調べてみる

  • クラスが読み込まれていない?→classes.dexをばらしてみる
  • Manifest.xml下記間違えてる?→クラス名をコピペしなおしてみる

で、特に改善されなかったので、MainActivityが継承しているFragmentActivitiyを普通にActivityを継承するように変更したら動いた。

ということで、FragmentActivity周りが怪しいことになる。

結果

android-support-v4.jar をクラスパス通しただけで libs 配下に配置していなかった。
libs 配下に配置しなおすと動いた。。
Androidのドキュメント読むとlibs配下に置けとは書いてありますが…SDKアップデートでこんな目に会うとは。。