tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

EclipseでビルドしたapkにDidn't find class "...." on path: のエラーがでた場合の対処

Android Developerでダウンロードしてきたサンプルコードの動作を確認したくて、Eclipse上でコンパイルしたapkを実行したときにエラーがでたので、その対処方法について書いときます。

 

ダウンロードしたのはマルチスレッドで処理して画像を表示するサンプル。(http://developer.android.com/shareables/training/ThreadSample.zip)

このサンプルでは最新のAndroid Developer Toolsだと古いバージョンのAndroidに対応するため、support.library v4が必要です。

簡単な手順を説明すると

SDK Managerの[Extras]からAndroid Support Library を選択してインストール 

f:id:tomoima525:20140110012525j:plain

・インポートしたサンプルプロジェクトを右クリック→ビルドパス→ビルドパスの構成を選択し、「ライブラリー」タブを押します。

・外部jarの追加ボタンで、先ほどインストールしたAndroid Support Library(windowsなら\adt\sdk\extras\android\support\v4\android-support-v4.jar)を選択

f:id:tomoima525:20140110012552j:plain

・クリーンビルド(プロジェクト(P)→クリーン)

 

で、apkは問題なく作成される。

が、端末で実行すると、以下のようなエラーメッセージがでる。

01-09 14:02:09.524: E/AndroidRuntime(775): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.android.threadsample/com.example.android.threadsample.DisplayActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.android.threadsample.DisplayActivity" on path: /data/app/com.example.android.threadsample-1.apk

 

どういうこっちゃと調べてみると、アプリに先ほどのandroid-support-v4.jarが含まれていないのが原因でした。

 

対処方法

・サンプルプロジェクトを右クリック→ビルドパス→ビルドパスの構成を選択し、「順序およびエクスポート」タブをクリック

android-support-v4.jar にチェックを入れる。

f:id:tomoima525:20140110012729j:plain

 

・もう一回クリーンビルド

 

なお、こちらにも方法が書いてあります

(英語)http://developer.android.com/tools/support-library/setup.html