Mapsforge を使用してアプリケーションにマップ ビューを追加しようとしています。私は次のことをしました:
- jarファイルをダウンロードして
libs/
フォルダ に配置- mapsforge-core-0.4.0.jar
- mapsforge-map-0.4.0.jar
- mapsforge-map-android-0.4.0.jar
- mapsforge-map-reader-0.4.0.jar
- ファイルを右クリックし、Build Path > Add to Build Path を選択します。
- Project Propertiesで、 4つの jar をエクスポート済みとしてマークします。
ただし、アプリを実行すると、ライブラリからのクラスへの最初の呼び出しでクラッシュします。
E/AndroidRuntime(21265): java.lang.NoClassDefFoundError: org.mapsforge.map.android.graphics.AndroidGraphicFactory
Android SDK ツールはすべてバージョン 17 以上です。Maven は関係ありません。
私は答えを探していましたが、役に立ちませんでした。私は jar ファイルをリストの上位に移動して、プロジェクトをクリーンアップしようとしました。これと、私が既に行ったことは、ネット上で提案されているものの本質です。何も助けませんでした。
bin/dexedLibs の内容を調べると、mapsforge の jar が作成されているが、マニフェスト ファイルと (maps jar の場合) osmarender リソースを除いて、実質的に空であることがわかります。特に、classes.dex ファイルがありません。そのフォルダー内の Android サポート ライブラリには、classes.dex ファイルが含まれています。
手がかりはありますか?
編集:元の jar ファイルを調べました。.class ファイルを見ると、それぞれが で始まることに気付きましたCA FE BA BE 00 00 00 33
。つまり、Java 7 形式です。
ネットで見つけた情報によると、Java 7 は Android SDK でサポートされていません。今でもそうですか?これにより、何も機能しない理由が説明されますが、Mapsforge の開発者が Java 7 を使用して、Android で使用される jar をコンパイルする理由がわかりません...