ページ

2012/01/02

Android MapActivityをIntentで起動したときにNoClassDefFoundError発生

|

AndroidでGoogle Maps APIを使う場合に、次のようにIntentでMapActivityのサブクラスを起動するケースがあると思います。

Intent intent = new Intent().setClass(this, SampleMapActivity.class);

その際、別のプロジェクトからコピーしてきた場合などで、ある記述が抜けていると NoClassDefFoundErrorが発生してしまいます。 他の情報が全くなく、はまってしまったので対処方法を記録します。

解決策は下記の通りなのですが、uses-libraryでGoogle Maps APIを使っていることをAndroidManifest.xmlに明記する必要があります。
Cannot resolve MapActivity class on Android
具体的には以下のようにapplicationタグの子としてuses-libraryを書きます。

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme" >
        <uses-library android:name="com.google.android.maps" />

uses-libraryがなくてもコンパイルは成功するので、注意が必要です。

0 件のコメント: