編集:詳細なハウツーについては、私の答えをチェックしてください。
私は今2日間苦労しています。誰かが助けてくれることを願っています。
MapView で最新の ActionBarSherlock (4.0) を使用しようとしています。フラグメントに問題があることはわかっていましたが、このアクティビティではフラグメントは必要ありません。しかし、ローダーが必要であり、ローダーを使用するには FragmentActivity も拡張する必要があるようです。問題ありません。Pete Doyle のandroid-support-v4-googlemapsがあると思いました。多くの SO スレッドと Google グループで提案されているように、android-support-v4.jar の代わりに android-support-v4-googlemaps JAR (実際には android-support-v13-r7-googlemaps.jar) を使用して ABS を構築します。その後、プロジェクトのライブラリとして使用しました。
今、私は自分の活動をこのようにしたいと思います:
public class BananoutMapActivity extends SherlockFragmentActivity implements LoaderCallbacks<ArrayList<EventItem>>{
問題:
コンパイルされますが、実行時エラーがスローされます。E/AndroidRuntime(29159): java.lang.NoClassDefFoundError: ndl.klimczak.bananout.BananoutMapActivity
私がトリプルチェックしたこと:
- ActionBarSherlock ライブラリ プロジェクトと私のプロジェクトの両方が Google API 4.0.3 を対象としています
- 私は
<uses-library android:name="com.google.android.maps" />
それをアプリケーションタグに持っています。 - プロジェクトのビルドパスにも同じ android-support-v13-r7-googlemaps.jar があります
- マニフェストで
.BananoutMapActivity
宣言しました
興味深い点:
ICS エミュレーターで実行すると動作します (2.* エミュレーターと 2.3.7 デバイスでエラーが表示されます)。
パーツを削除して
implements LoaderCallbacks<ArrayList<EventItem>>
も機能しますが、この方法では LoaderManager を使用できません
いったいなぜ NoClassDefFoundError エラーが発生し、ローダーを MapCapableSherlockEnabledFragmentActivity で動作させるにはどうすればよいでしょうか?