我写了一个使用Guava库的Android应用程序。
该应用在Android 4(虚拟机和真实设备)上完美运行。
但是,当我尝试在运行Android 2.1的虚拟机上启动应用程序时,出现以下错误:
java.lang.NoClassDefFoundError: com.google.common.collect.ImmutableSortedMap
我玩过图书馆的进口。背后的想法:旧版Android可能以不同的方式处理jar。这里没有成功。
值得一提的是,该应用程序是已使用Guava的先前版本的更新。以前的版本在所有设备上运行良好,但没有使用ImmutableSortedMap对象而只是一个ImmutableList。 手机是否有可能加载他自己版本的Guava库(可能不包含ImmutableSortedMap)?
我正在使用Eclipse和ADT 20.这是我的库在Eclipse包浏览器中的样子:
提前谢谢!
答案 0 :(得分:5)
您可能需要使用guava-jdk5 back port。在较新版本的Guava中,ImmutableSortedMap
实现了NavigableMap
,它是在JDK6中引入的。早期版本的Android不支持NavigableMap
- 特别包括2.1; NavigableMap
已在Android上发布,从Android 2.3 Gingerbread开始,它看起来像。
(在backport中,ImmutableSortedMap
支持所有NavigableMap
方法;它实际上并不实现NavigableMap
。)