1

Guava ライブラリを使用する Android アプリを作成しました。

アプリは Android 4 (仮想マシンと実デバイス) で完全に正常に動作します。

ただし、Android 2.1 を実行している仮想マシンでアプリを起動しようとすると、次のエラーが発生します。

java.lang.NoClassDefFoundError: com.google.common.collect.ImmutableSortedMap

ライブラリのインポートで遊んでみました。背後にある考え方: 古いバージョンの Android では、jar を別の方法で処理する可能性があります。ここでは成功しません。

このアプリは、すでに Guava を使用している以前のバージョンの更新であることは言及する価値があります。以前のバージョンはすべてのデバイスで正常に動作しましたが、ImmutableList だけではなく、ImmutableSortedMap オブジェクトを使用していませんでした。電話が独自のバージョンの Guava ライブラリ (ImmutableSortedMap を含まない可能性があります) をロードしている可能性はありますか?

ADT 20 で Eclipse を使用しています。Eclipse パッケージ エクスプローラーでライブラリがどのように表示されるかを次に示します。

Eclipse パッケージ エクスプローラー。

前もって感謝します!

4

1 に答える 1

5

おそらくguava-jdk5 back portを使用する必要があります。新しいバージョンの Guava では、JDK6 で導入された を ImmutableSortedMap実装しています。Android の以前のバージョン (具体的には 2.1 を含む) ではサポートされていません。Android 2.3 Gingerbread の時点で Android でリリースされたようです。NavigableMapNavigableMapNavigableMap

(バックポートでImmutableSortedMapは、すべてのNavigableMapメソッドをサポートしていますが、実際には実装していませんNavigableMap。)

于 2012-11-12T16:35:32.200 に答える